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| %>,但它只会显示一项(最后一项,数量为 2)。我怎样才能实现我的目标?

4

3 回答 3

0

我没有accepts_nested_attributes_for :items

我想我可以稍后在实现 create 方法时添加它,但它对于表单创建属性批量分配都是必不可少的

于 2013-04-30T10:38:01.813 回答
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 回答
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 回答