Ruby on Rails:将模型 X 重命名为人员模型



我刚刚使用以下命令将我的表"客户端"重命名为"人":

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 的每一列执行此操作。

最新更新