gpt4 book ai didi

ruby-on-rails - rails : Multiple references to the same model error

转载 作者:行者123 更新时间:2023-11-29 12:59:55 25 4
gpt4 key购买 nike

我有一个Message 模型,它有一个user 和一个teammember(两者都是用户)。模型是:

# message.rb
class Message < ActiveRecord::Base
belongs_to :user
belongs_to :teammember, :class_name => "User", :foreign_key => 'teammember_id'
end

# user.rb
class User < ActiveRecord::Base
has_many :messages
end

我有这个迁移:

class CreateMessages < ActiveRecord::Migration
def change
create_table :messages do |t|
t.references :user, index: true, foreign_key: true
t.references :teammember, index: true, foreign_key: true
t.text :body
t.boolean :read, default: false

t.timestamps null: false
end
end
end

当我在本地(使用 sqlite3)运行 rake db:migrate 时,一切正常。问题是当我部署到 heroku(使用 postgresql)并运行

heroku run rake db:migrate

它引发下一个错误:

PG::UndefinedTable: ERROR: relation "teammembers" does not exist : ALTER TABLE "messages" ADD CONSTRAINT "fk_rails_7efc67ccc9" FOREIGN KEY ("teammember_id") REFERENCES "teammembers" ("id")

您知道问题出在哪里吗?我该如何解决?

最佳答案

Rails 根据关联进行猜测,因为您正在引用一个表,它无法从关联中确定您必须自己添加它。

class CreateMessages < ActiveRecord::Migration
def change
create_table :messages do |t|
t.references :user, index: true, foreign_key: true
t.references :teammember, index: true
t.text :body
t.boolean :read, default: false

t.timestamps null: false
end
add_foreign_key :messages, :users, column: :teammember_id
end
end

关于ruby-on-rails - rails : Multiple references to the same model error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33173814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com