0

我在提交嵌套表单时遇到问题。

我的两个模型:

#PLANNING MODEL
class Planning < ActiveRecord::Base
   has_many :periods
   belongs_to :plannable, polymorphic: true
   attr_accessible :quantity, :periods_attributes
   accepts_nested_attributes_for :periods
end

#PERIOD MODEL
class Period < ActiveRecord::Base
   belongs_to :planning
   attr_accessible :planned_quantity, :planning_id
end

并以我的形式:

 ...
 <% @planning.periods.each do |period| %>
   <%= f.fields_for(period) do |builder| %>
     <%= builder.label :planned_quantity, "Planned quantity" %>
     <%= builder.number_field :planned_quantity%>
   <%end%>
 <%end%>
 ...

在我提交之前,一切都像我想要的那样显示,当它显示以下内容时:

Can't mass-assign protected attributes: period

有谁知道如何帮助我?一直在搜索整个网络...

谢谢!

4

2 回答 2

0

将您的属性定义attr_accessible为:

attr_accessible :planned_quantity, :planning_id, :period
于 2013-10-30T14:16:23.893 回答
0

您不需要@planning.periods.each,只需执行此操作

<%= f.fields_for :periods do |builder| %>
  <%= builder.label :planned_quantity, "Planned quantity" %>
  <%= builder.number_field :planned_quantity%>
<% end %>
于 2013-10-30T14:15:10.700 回答