簡體   English   中英

Rails嵌套形式:f.input和input(f)的區別

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM