活动记录更新列ID

时间:2018-01-11 00:14:40

标签: ruby-on-rails activerecord

我正在尝试更新其对象的活动记录ID列。这看起来很简单,但它没有像我预期的那样工作。

例如

Lesson.first.update(:chapter_id => Chapter.find_by(:chapter_code => 'base'))

但是此代码正常运行

Lesson.first.update(:chapter_id => Chapter.find_by(:chapter_code => 'base').id)

我尝试在模型之间创建关联,但没有运气。我只想知道为什么我的代码无效!

1 个答案:

答案 0 :(得分:0)

在第一个片段中,您传入的对象(Chapter实例)中需要一个整数,因为您正在尝试分配chapter_id。这就是第二个片段的工作原理,因为你也得到了章节的整数id。

您还应该能够直接分配关系:

Lesson.first.update(:chapter => Chapter.find_by(:chapter_code => 'base'))