当我尝试使用db / seeds.rb文件预填充数据库时,我的代码如下:
now = Time.now.beginning_of_hour
later = Time.now.end_of_hour + 1
sch1 = Schedule.create(start_time: now, stop_time: later)
sch1.channel = channel
sch1.program = cartoon
cartoon.schedules.push(sch1)
sch1.save
cartoon.save
其中频道和漫画在代码中先前已定义,其中Channel.create和Program.create具有适当的值。
当我查看rails控制台时,我看到所有三个对象(通道,程序和计划)都存在,但没有计划没有program_id。 (schedule.program由于某种原因工作得很好)。程序的program.schedules也是一个空数组。
作为测试,我在控制台中执行了以下操作:
now = Time.now.beginning_of_hour
later = Time.now.end_of_hour + 1
channel = Channel.first
cartoon = Program.first
sch1 = Schedule.create(start_time: now, stop_time: later)
sch1.channel = channel
sch1.program = cartoon
cartoon.schedules.push(sch1)
sch1.save
cartoon.save
并且工作正常。
种子有什么特别之处?我是否需要在稍后引用它之前调用save或者什么?变量显然不是空的......