我知道很多人已经遇到了同样的问题,但我没有找到适合我的特殊情况的解决方案。我有以下型号:
class Invoicing::CommercialDocumentLine < ActiveRecord::Base
attr_accessible :commercial_document_line_details_attributes
has_many :details, :class_name => "Invoicing::CommercialDocumentLineDetail", :foreign_key => :commercial_document_line_id
accepts_nested_attributes_for :details
end
和
class Invoicing::CommercialDocumentLineDetail < ActiveRecord::Base
attr_accessible :description, :commercial_document_line_id
belongs_to :commercial_document_line
end
我有一个表格来更新一个CommercialDocumentLine
允许用户添加一些细节的表格:
= simple_form_for line do |f|
## some code here which works great
= f.simple_fields_for :commercial_document_line_details do |fd|
= fd.input :description
问题是我一直收到警告:
WARNING: Can't mass-assign protected attributes: commercial_document_line_details
这是我的控制台日志:
"invoicing_commercial_document_line"=>{"article_id"=>"3", "unit_price"=>"200.0", "format_quantity"=>"2.0", "discount_rate"=>"0.0", "commercial_document_line_details"=>{"description"=>"awesome"}}, "commercial_document_id"=>"1", "id"=>"11"}
事实是我对这里发生的事情有点困惑:如果我用我的形式替换
= f.simple_fields_for :commercial_document_line_details
经过
= f.simple_fields_for :details
那么表格将不会显示。如果我更换
attr_accessible :commercial_document_line_details_attributes
经过
attr_accessible :details_attributes
然后我有同样的错误。
我当然在这里遗漏了一些东西,但我无法弄清楚。
任何帮助,将不胜感激。