我刚刚使用以下命令将我的表"客户端"重命名为"人":
class RenameClientsToPeople < ActiveRecord::Migration
def change
rename_table :clients, :people
end
end
我小心翼翼地将所有实例和文件名从客户端重命名为个人,从客户端重命名为人。但由于某种原因,我的应用程序将无法再运行。我经常收到这样的错误:
SQLite3::SQLException: no such column: projects.person_id: SELECT COUNT(*) FROM "projects" INNER JOIN "people" ON "projects"."person_id" = "people"."person_id" WHERE "people"."user_id" = 1
谁能告诉我如何解决这个问题?
也许我应该从头开始重新创建 Person 模型,而不仅仅是重命名它?
您
还需要将所有外键从 client_id
重命名为 person_id
,看起来您忽略了这样做。在该迁移中,您需要执行以下操作:
class RenameClientsToPeople < ActiveRecord::Migration
def change
rename_table :clients, :people
rename_column :projects, :client_id, :person_id
end
end
对引用 client_id
的每一列执行此操作。