轨PG未定义列不创建索引存在

问题描述:

我想添加一个索引的列,但我得到的错误:轨PG未定义列不创建索引存在

ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR: column "contact" does not exist 
: CREATE UNIQUE INDEX "index_users_on_contact" ON "users" ("contact") 

这很奇怪,因为当你的看我m在创建列之前,我尝试对其进行索引:

class AddContactToUser < ActiveRecord::Migration[5.1] 
    def change 
    add_reference :users, :contact, foreign_key: true 
    add_index :users, :contact, unique: true 
    end 
end 

为什么我会收到此错误?

如果您想知道为什么我要做单独的联系人模式,那是因为所有用户都有联系人,但并非所有联系人都有用户。

add_reference :users, :contact, foreign_key: true 

创建一个名为contact_id的列。所以你的索引需要是

add_index :users, :contact_id, unique: true