无法批量分配受保护的属性

时间:2013-05-11 02:06:11

标签: ruby-on-rails ruby mass-assignment

我已经阅读了关于这个问题的一些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'
    }
  ]
)

我很难理解为什么会这样。有什么建议吗?

提前致谢

3 个答案:

答案 0 :(得分:5)

您需要在attr_accesible行的Severity模型中添加:severity。 Rails正在尝试按照我假设您在数据库中拥有的名称来分配属性。

答案 1 :(得分:2)

attr_accessible :severity

第6节:质量分配 http://guides.rubyonrails.org/security.html

答案 2 :(得分:1)

您的种子说severity,但您的访问者说severity_id。那是哪一个呢?