我写了这段代码,试图尽可能透明地显示所有内容:
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(更新";雇员";SET";updated_at"=$1其中";员工"id"=$2[["updated_at","2020-12-16 17:08:38.131271"],["id",7634]]
也就是说,没有提及该公司。
为什么会发生这种情况,我该如何解决?
class UpdatingCompaniesForEmployees < ActiveRecord::Migration[6.0]
def change
Employee.reset_column_information
Employee.find(7634).update!(company_id: 1)
end
end