0

我做了一些表格,并尝试以这种方式制作嵌套表格:

<%= 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 %>

这没用。它们之间到底有什么区别,为什么第二种方式(我认为更优雅)不起作用?

谢谢

4

1 回答 1

1

text_field方法对您的 object 一无所知@birth,因此该字段的名称将只是child_attributes,这就是您可以通过 访问它的原因params[:child_attributes],但这不是您想要的。

你应该使用ff.text_field. 然后在您的Birth模型中,添加:

accepts_nested_attributes_for :child_attributes
attr_accessible :child_attributes_attributes
于 2012-09-01T15:33:18.627 回答