在我的 Rails 3.2.8 项目的 db/seeds.rb 文件中,我创建了种子数据:
level_1 = Level.create(number: 1)
我的级别模型是:
class Level < ActiveRecord::Base
attr_accessible :number
has_many :lessons
end
所以我想播种课程:
Lesson.create(number: 5, level: level_1)
它的模型是:
class Lesson < ActiveRecord::Base
attr_accessible :level_id, :number
belongs_to :level
end
当我运行时rake db:setup
,我收到以下错误:
耙中止!无法批量分配受保护的属性:级别
我如何让它工作,我需要添加:level
到我attr_accessible
的课程模型中的元素列表吗?这是一个坏主意吗?我是否应该简单地创建一个Lesson
没有 a 的Level
然后调用lesson.level = level_1
?
UDPATE:在seeds.rb 文件中的rails 生成的注释显示了这个例子:
cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
Mayor.create(name: 'Emanuel', city: cities.first)