2

通常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" />
4

1 に答える 1

7

おそらくそれFooを入れる価値がaccepts_nested_attributes_for :barsあるでしょうか?

于 2013-10-25T15:56:44.290 に答える