fields_for has_many不会在表单上显示为数组



通常,当我在简单的has_many关联上使用fields_for时,表单上的输入名称看起来像foo[bars_attributes][0][name],但就我而言,它不会在表单上显示为数组 - 相反,我得到类似 foo[bars][name] 的东西,当我尝试提交时它会爆炸,因为它试图分配给数组的 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" />

也许Foo值得拥有accepts_nested_attributes_for :bars

相关内容

  • 没有找到相关文章

最新更新