我刚使用此命令将我的表格客户端重命名为人员:
class RenameClientsToPeople < ActiveRecord::Migration
def change
rename_table :clients, :people
end
end
我仔细地将所有实例和文件名从客户端重命名为 person ,并从客户端重命名为 people 。但由于某种原因,我的应用程序将不再起作用。我经常遇到这样的错误:
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模型而不是重命名它?
答案 0 :(得分:4)
您还需要将所有外键从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
的每个列执行此操作。