2013-10-02 90 views
0

我有3個模型;報價,項目和產品。嵌套窗體「無法批量分配受保護的屬性」

我的報價/ new.html.erb設置爲渲染包含項目表單的部分,並在該項目表單中呈現部分以選擇產品。

錯誤:::加載ActiveModel :: MassAssignmentSecurity中的錯誤QuotesController#創建 「不能大規模指派保護屬性:產品」

Quote.rb

(我在下面的編輯不相關的東西)
class Quote < ActiveRecord::Base 
    attr_accessible :items_attributes 

    has_many :items, :dependent => :destroy 
    accepts_nested_attributes_for :items 
end 

item.rb的

class Item < ActiveRecord::Base 
    attr_accessible :price, :product_attributes 

    belongs_to :quote 
    belongs_to :product 
    accepts_nested_attributes_for :product 
end 

Product.rb

class Product < ActiveRecord::Base 
    attr_accessible :name, :item_make 

    has_many :items 
    accepts_nested_attributes_for :items 
end 

new.html.erb

<%= simple_nested_form_for @quote do |m| %> 

    <%= m.simple_fields_for :items, :html => { :multipart => true } do |quoteform| %> 
    <%= render "form", f: quoteform %> 
    <% end %> 

    <%= m.link_to_add "Add an item", :items %> 
    <%= m.button :submit %> 
<% end %> 

_form.html.erb

<%= f.simple_fields_for :products, :html => { :multipart => true } do |x| %> 
    <% render "layouts/styleselect", g: x %> 
<% end %> 

_styleselect.html.erb

<% g.hidden_field :item_make, :value => @item.make %> 
<%= g.input :name, collection: Product.where(:item_make => 1), label: false, input_html: {:id=>"sst_style"} %> 

所以基本上嵌套形式 - 經濟通去>項目 - >產品,但項目屬於產品,這可能導致問題?我嘗試將product_attributes或products_attributes添加到項目模型和報價模型,並且與recep_nested_attributes_for產品相同。

任何幫助,將不勝感激,謝謝。

回答

1

看起來你需要使products單數。

<%= f.simple_fields_for :product, :html => { :multipart => true } do |x| %> 
    <% render "layouts/styleselect", g: x %> 
<% end %> 

您目前有:

<%= f.simple_fields_for :products, :html => { :multipart => true } do |x| %> 
相關問題