0
這個問題有幾個相關的問題。但是沒有一個答案能夠解決我的情況。爲什麼我的列處於我的attr_accessible列表中時發生了質量分配錯誤
我在嘗試創建新策略時在本地主機上收到此錯誤。
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.today這裏創建starts_on 。真的很難過,在過去的幾天裏我花了幾個小時的時間來弄清楚爲什麼會發生這種情況。
我很好奇你爲什麼不在policy_type.policy_class.constantize.new(attributes)處使用'Policy.new attributes'。什麼是policy_class返回? –
我沒寫這行。但是policy_class是policy_types表中的一列,它包含一個字符串。我試圖重構整個項目,其中包括更改策略表。但是這個列'starts_on'在舊錶中。並且我沒有觸及policy_types表 – Ryan
字段'starts_on'是什麼類型的? – Eru