1

私のプランリストhas_many :items

plan_list#new に、アイテムを事前に入力できるネストされたフォームが必要です。

私は試した

# View
<%= form_for @plan_list do |f| %>
  <%= f.fields_for :items do |item| %>
    <%= item.text_field :quantity %>
  <% end %>

  # Controller
  def new
    @plan_list = PlanList.new
    @plan_list.items.build(quantity:1)
    @plan_list.items.build(quantity:2)
  end

ただし、アイテムの空の入力しか表示されません。

私も試し<%= f.fields_for @plan_list.items do |item| %>てみましたが、1 つのアイテム (数量 2 の最後のアイテム) しか表示されません。どうすれば目標を達成できますか?

4

3 に答える 3

0

はい、これは必須であり、問​​題を解決するはずです accept_nested_attributes_for :items

  <%= form_for @plan_list do |f| %>
    <%= f.fields_for :items do |item| %>
      <%= item.text_field :quantity %>
    <% end %>


  def new
    @plan_list = PlanList.new
    @plan_list.items.build(quantity:1)
    @plan_list.items.build(quantity:2)
  end
于 2013-04-30T12:18:11.847 に答える
0

アソシエーションのビルド メソッドを次のように使用する必要があります。

  def new
    @plan_list = PlanList.new
    @plan_list.items << @plan_list.items.build(quantity:1)
    @plan_list.items << @plan_list.items.build(quantity:2)
  end
于 2013-04-30T09:53:43.410 に答える