[英]Rails nested forms: f.input and input(f) difference
我正在做一些表格,並嘗試以這種方式制作一個嵌套表格:
<%= 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 %>
這是行不通的。 它們之間到底有什么區別,為什么第二種方法(我認為更優雅)不起作用?
謝謝
text_field
方法對您的對象@birth
,因此字段名稱僅為child_attributes
,這就是為什么您可以通過params[:child_attributes]
訪問它的原因,但這不是您想要的。
您應該使用ff.text_field
。 然后在您的Birth
模型中,添加:
accepts_nested_attributes_for :child_attributes
attr_accessible :child_attributes_attributes
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.