我已经阅读了关于这个问题的一些SO文章,但它们似乎都没有起作用。我正在为我的一个表创建种子数据,每当我运行rake db:seed时,它都会给我错误:
Can't mass-assign protected attributes: severity
我的两个模型看起来像
class Status < ActiveRecord::Base
belongs_to :severity
attr_accessible :description, :image, :name, :slug, :severity_id
end
和
class Severity < ActiveRecord::Base
attr_accessible :name, :val, :severity_id
end
我试图播种的数据是
statuses = Status.create(
[
{
"name"=> 'Normal',
"slug"=> 'normal',
"description"=> 'The service is up or was up during this entire period',
"severity"=> 1,
"image"=> 'tick-circle'
}
]
)
我很难理解为什么会这样。有什么建议吗?
提前致谢
答案 0 :(得分:5)
您需要在attr_accesible行的Severity模型中添加:severity。 Rails正在尝试按照我假设您在数据库中拥有的名称来分配属性。
答案 1 :(得分:2)
attr_accessible :severity
答案 2 :(得分:1)
您的种子说severity
,但您的访问者说severity_id
。那是哪一个呢?