0
我做了一些表格,並試圖作出一個嵌套形式方式:Rails的嵌套形式:f.input和輸入(F)的區別
<%= form_for(@birth) do |f| %>
<%= f.text_area(:obs) %>
<%= f.fields_for :child_attributes do |ff| %>
<%= text_field(:child_attributes, :earring) %>
<% end %>
<% end %>
然後,在BirthsController,我可以得到嵌套的屬性,這些屬性方法:
child = params[:child_attributes]
但是,如果我改變我的嵌套形式:
<%= form_for(@birth) do |f| %>
<%= f.text_area(:obs) %>
<%= f.fields_for :child_attributes do |ff| %>
<%= ff.text_field(:earring) %>
<% end %>
<% end %>
它不工作。 他們之間的差別究竟是什麼,爲什麼第二種方式(我認爲更優雅)不起作用?
感謝
就是這樣,謝謝!只有一件事:attr_accessible:child_attributes沒有最後的「_attributes」:) – caarlos0
你確定嗎?我認爲你需要最後的屬性。例如,如果你有'has_many:media'和'f.fields_for:media ...',那麼你需要有'attr_accessible:media_attributes'。所以我不明白爲什麼你的關聯被命名爲「* _attributes」的事實會改變... – Robin
是的......但你的例子是'attr_accessible:child_attributes_attributes',我使用'attr_accessible:child_attributes',它工作的很好....我只是改變了我在我的控制器中的值的方式,我使用'params [:birth] [:child_attributes]'... – caarlos0