我尝试在创建产品时使用此表单:
这是产品形式:
<%= f.fields_for :feature do |ft| %>
<%= ft.label :name %>
<%= ft.text_field :name %>
<%= ft.label :value %>
<%= ft.text_field :value %>
<% end %>
但是当尝试创建我得到这个错误
Can't mass-assign protected attributes: feature
我试着把它放在我的产品型号中:
attr_accessible :code, :description, :price, :title,:image_1,:image_2,:image_3,:image_4,:image_5,:image_6,:image_7,:image_8,:features_attributes # and feature_attributes meet
accepts_nested_attributes_for :features
但得到同样的错误,我的关联是
product.rb
has_many :features
feature.rb
belongs_to :product
我看到了嵌套的属性类,但没有找到,因为错误仍然存在:
http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html
错误是:
Can't mass-assign protected attributes: feature
如果有人能非常非常地感谢你。
答案 0 :(得分:1)
我认为应该是:
fields_for :features
修改强>
第一个参数的名称应该是关联的名称(要素),然后第二个参数应该是对象的实例。所以你必须把这个部分包装成这样的循环:
<% @product.features.each do |feature| %>
<%= f.fields_for :features, feature do |ft| %>
<%= ft.label :name %>
<%= ft.text_field :name %>
<%= ft.label :value %>
<%= ft.text_field :value %>
<% end %>
<% end %>