【发布时间】:2020-12-16 17:19:47
【问题描述】:
我编写了这段代码,试图尽可能透明地显示所有内容:
Employee.find(7634).update!(company_id: 1)
此代码完全正确且有效。它适用于rails c。
但它在迁移中不起作用:
class UpdatingCompaniesForEmployees < ActiveRecord::Migration[6.0]
def change
Employee.find(7634).update!(company_id: 1)
end
end
执行时的 SQL 如下所示:
员工更新 (0.2ms) UPDATE "employees" SET "updated_at" = $1 WHERE "employees"."id" = $2 [["updated_at", "2020-12-16 17:08:38.131271"], [ "id", 7634]]
也就是说,没有提到公司。
为什么会发生这种情况,我该如何解决?
【问题讨论】:
标签: ruby-on-rails rails-activerecord ruby-on-rails-6