rails PG undefined列不存在用于索引创建

问题描述 投票:0回答:1

我正在尝试为for列添加索引,但我收到错误:

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

这很奇怪,因为你在我尝试索引之前看到我正在创建列:

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

为什么我收到此错误?

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

postgresql activerecord ruby-on-rails-5.1
1个回答
0
投票
add_reference :users, :contact, foreign_key: true

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

add_index :users, :contact_id, unique: true
© www.soinside.com 2019 - 2024. All rights reserved.