shema_plus with rails migration:使组合列唯一

时间:2014-08-25 20:12:56

标签: ruby-on-rails schema

我在rails中使用shema_plus gem,我想这样做,所以如果两列的组合是相同的,我无法将数据复制到我的数据库中。

不应该这样吗?:

t.string :name, null: false, index: { with: :deleted_at, unique: true }

':deleted_at'肯定是我迁移中的一个字段。

但是这允许我在mysql端输入两次相同的名字。

另外,这里有一些mysql给我的信息:

Index: index_plans_on_name_and_deleted_at
Definition:

Type    BTREE
Unique  Yes
Columns name
    deleted_at

EDIT _____________________________________________________

看起来我需要deleted_at的默认值,例如:

t.datetime :deleted_at, default: '2000-01-01' 

1 个答案:

答案 0 :(得分:0)

不确定gem,但您可以使用以下命令直接在ActiveRecord中实现:

validates :name, :uniqueness => {:scope => :deleted_at}

假设您希望namedeleted_at的组合是唯一的。