通常fields_for
、単純なhas_many
関連付けで a を使用すると、フォームの入力名は のよう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" />