Rails:添加外键约束

时间:2016-12-04 19:12:06

标签: ruby-on-rails database postgresql

我的join_table目前有以下列:

     - id
     - table_a_id
     - table_b_id 

尝试为join_table的{​​{1}}添加外键约束,我生成以下迁移:

table_a_id

错误

    class AddTableIdForeignKeyConstraintToJoinTable < ActiveRecord::Migration[5.0]  
      def change
        add_foreign_key :table_a, :join_table, column: :table_a_id, primary_key: "lng_id"
      end
    end

问题
这一行是什么意思 PG::UndefinedColumn: ERROR: column "question_id" referenced in foreign key constraint does not exist : ALTER TABLE "table_a" ADD CONSTRAINT "fk_rails_4b0148d527" FOREIGN KEY ("question_id") REFERENCES "join_table" ("lng_id") ? Rails在哪里寻找foreign key constraint does not exist

1 个答案:

答案 0 :(得分:0)

根据add_foreign_key,第一个参数应该是外键存在的表,第二个参数应该是表名,其中存在相应的主键。

并且,您的错误表明外键不存在于应有的位置。

尝试将迁移更改为:

def change
    add_foreign_key :join_table, :table_a, column: :table_a_id, primary_key: "lng_id"
 end