1

我尝试在创建产品时使用此表单:

这是在product_form中:

<%= 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

但得到同样的错误,我的联想是

产品.rb

  has_many :features

特征.rb

  belongs_to :product

我看到了嵌套的属性类,但没有找到,因为错误仍然存​​在:

http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html

错误是:

Can't mass-assign protected attributes: feature

如果有人可以帮助我非常非常非常感谢。

4

1 回答 1

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 %>
于 2013-06-01T17:03:12.563 回答