rails PG undefined列不存在用于索引创建
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rails PG undefined列不存在用于索引创建相关的知识,希望对你有一定的参考价值。
我正在尝试为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
为什么我收到此错误?
如果你想知道我为什么要做一个单独的联系模式,那是因为所有用户都有联系人但并非所有联系人都有用户。
答案
add_reference :users, :contact, foreign_key: true
创建一个名为contact_id
的列。所以你需要索引
add_index :users, :contact_id, unique: true
以上是关于rails PG undefined列不存在用于索引创建的主要内容,如果未能解决你的问题,请参考以下文章
postgresql中的Rails json列不接受任何值,并在存储后调用时返回nil
PG::UndefinedTable: 错误: 关系“...”不存在