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なしで aを作成し、Level
その後 を呼び出す必要がありlesson.level = level_1
ますか?
UDPATE : レールによって生成された、seeds.rb ファイル内のコメントは、次の例を示しています。
cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
Mayor.create(name: 'Emanuel', city: cities.first)