美好的一天可爱的人们,
我想对我的种子数据执行以下操作,但我遇到了批量分配错误,这很好。
#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
我知道可以通过attr_accessible :category_id
在 Category 模型中设置一个来轻松修复它,但是 1)我想更多地了解为什么会发生这种情况,以及 2)我认为没有必要将其设置为可访问,因为我只是在导入数据和不需要改变吗?
提前致谢。
快乐的时光 :)