Rails唯一性验证 - 跳过满足特定条件的对象

时间:2012-10-30 21:02:47

标签: validation ruby-on-rails-3.2

我的模型有三个属性,包括状态属性:

RailsModel:
  attribute1
  attribute2
  state

我想验证attribute2范围内attribute1的唯一性:

validate :attribute1, uniqueness: { scope: :attribute2 }

但是,我不想检查任何状态=:已取消

的RailsModels

是否有一种简单的方法可以添加此条件,还是需要编写自定义验证?

1 个答案:

答案 0 :(得分:0)

您可以使用if条件:

validate :attribute1, uniqueness: { scope: :attribute2 }, :if => "state == canceled"

那里有很多种可能性,只需查看Guides