我在 Rails 中有一个简单的视图,我正在从 ERB 迁移到 HAML。此视图呈现嵌套表单,但包含一个空的子对象,它没有任何现有的子对象。
使用 ERB,我是通过这样做来实现的:
<%= form_for @question do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.object.answers.build if f.object.answers.empty? %>
<%= f.fields_for :answers do |builder| %>
<%= render 'answer_fields', f: builder %>
<% end %>
<%= f.submit %>
<% end %>
有用!但是当我使用 HAML 做同样的事情时,它也“有效”,但会在表单之间打印出令人讨厌的文本,看起来像这样:#<Answer:0xb159004>
.
这就是我的 HAML 的样子:
= form_for @question do |f|
= f.label :name
= f.text_field :name
= f.object.answers.build if f.object.answers.empty?
= f.fields_for :answers do |builder|
= render 'answer_fields', f: builder
= f.submit
它实际上是一回事,但是 ERB 和 HAML 有效,虽然它有效,但它也在#<Answer:0xb159004>
表格附近打印,我不知道如何摆脱。
我做错了什么还是这是一个 HAML 限制/错误?有什么解决方法吗?