这个问题有几个相关的问题。但没有一个答案能解决我的问题。
在尝试创建新策略时,我在本地主机上遇到了此错误。
Can't mass-assign protected attributes: starts_on
在我的policy.rb模型中,尽管我有这个:
class Policy < ActiveRecord::Base
belongs_to :policy_type
attr_accessible :starts_on,
:ends_on,
:i_agree_privacy_policy,
:license,
.
.
.etc...
validates:starts_on, :presence => true
def self.init(user, policy_type, load_user_profile = true)
attributes = {
:user => user,
:policy_type => policy_type,
:starts_on => Date.today
}
policy_type.policy_class.constantize.new(attributes)
end
etc...
end
这个表格是用于保险的,所以它很大,但在这里也不重要,因为我今天在这里用Date.tay创建starts_on。我在这里真的很困惑,过去几天我在谷歌上花了几个小时来弄清楚为什么会发生这种事。
您可能在policy_type.policy_class
解析到的实际类上得到"Can't mass assign"错误,而不是在Policy
上。
我会检查policy_type.policy_class
指向的任何类,并尝试在那里将starts_on
添加到attr_accessible
。