【发布时间】:2013-10-25 15:46:50
【问题描述】:
通常,当我在简单的 has_many 关联上使用 fields_for 时,表单上的输入名称类似于 foo[bars_attributes][0][name],但在我的情况下,它并没有在表单上显示为数组 - 相反,我得到类似foo[bars][name] 的东西,当我尝试提交时它会爆炸,因为它试图分配给数组的名称属性 - 我无法弄清楚与其他情况有什么不同。这是代码,显然已经为这个场地进行了简化和重命名。
我的模特:
class Foo
has_many :bars
end
控制器:
class FooController < ApplicationController
def new
@foo = Foo.new
@foo.bars.build
@foo
end
end
观点:
<div>
<%= form_for @foo do |f| %>
<%= f.fields_for :bars do |bar_fields| %>
<%= bar_fields.text_field :name %>
<% end %>
<div class="single_column">
<%= f.submit "Submit" %>
</div>
<% end %>
</div>
生成的标记:
<input name="foo[bars][name]" id="foo_bars_name" />
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 has-many fields-for