【发布时间】:2012-08-24 05:49:04
【问题描述】:
美好的一天,可爱的人们,
我想对我的种子数据执行以下操作,但我遇到了批量分配错误,这很好。
#Seeds.rb
Category.create(name: 'Top hats', category_id: '44')
#Mass-assignment error
ActiveModel::MassAssignmentSecurity::Error: Can't mass-assign protected attributes: category_id
但如果我在 CSV 文件中设置种子数据,我可以使用以下方法成功导入:
#Seeds.rb
require 'csv'
CSV.foreach(Rails.root.join("category.csv"), headers: true) do |row|
BusinessCategory.create! do |category|
category.id = row[0]
category.name = row[1]
end
end
此外,这也适用于 Rails 控制台:
#Rails console
category = Category.new
category.name = 'Top hat'
category.id = 42
我知道可以通过在 Category 模型中设置 attr_accessible :category_id 来轻松修复它,但是 1)我想更多地了解为什么会发生这种情况,以及 2)我认为没有必要将其设置为可访问,因为我我只是导入数据,不需要更改吗?
提前致谢。
快乐的日子:)
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2