某些条件下,使用唯一列迁移?

时间:2014-08-12 09:35:50

标签: ruby-on-rails migration database-migration

我可以为特定条件(在表格中的其他列)添加列的唯一性吗?

add_index :table_name, :column_name1, [:unique => true, where: :column_name2 = false]

日Thnx

1 个答案:

答案 0 :(得分:2)

是的,你可以,但你所做的概念是错误的。

添加唯一=>如表中所示,它将始终验证数据库的唯一性。如果它是有条件的,你不应该这样做。在这些情况下,您需要做的是在模型上而不是在数据库上创建验证,如下所示:

class Account < ActiveRecord::Base
  validates :email, uniqueness: true
end

您可以在此处详细了解Rails guides