2017-09-26 76 views
0

我想添加一個索引的列,但我得到的錯誤:軌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 

爲什麼我會收到此錯誤?

如果您想知道爲什麼我要做單獨的聯繫人模式,那是因爲所有用戶都有聯繫人,但並非所有聯繫人都有用戶。

回答

0
add_reference :users, :contact, foreign_key: true 

創建一個名爲contact_id的列。所以你的索引需要是

add_index :users, :contact_id, unique: true