小编tha*_*ake的帖子

使用add_foreign_key进行Rails迁移:外键约束中引用的"column"user_id"不存在"

(Rails是5.0.0版,Ruby 2.3.0p0)

我想在Users表和Cards表之间创建一个关联.我已添加belongs_to :user到Cards模型和has_many :cardsUsers模型,并创建了一个迁移:

class AddUserIdToCard < ActiveRecord::Migration[5.0]
  def change
    add_foreign_key :cards, :users, column: :user_id
  end
end
Run Code Online (Sandbox Code Playgroud)

当我跑rake db:migrate,我收到错误:

ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR:  column "user_id" referenced in foreign key constraint does not exist
: ALTER TABLE "cards" ADD CONSTRAINT "fk_rails_8ef7749967"
FOREIGN KEY ("user_id")
  REFERENCES "users" ("id")
Run Code Online (Sandbox Code Playgroud)

现在我最初只是通过添加add_column :cards, :user_id, :integer到迁移来解决这个问题,但这看起来并不是很整洁,我担心以后会出现问题.有没有更好的方法来实现这一目标?

ruby ruby-on-rails ruby-on-rails-5

5
推荐指数
1
解决办法
3408
查看次数

标签 统计

ruby ×1

ruby-on-rails ×1

ruby-on-rails-5 ×1