单独验证多列的唯一性

时间:2013-04-09 18:10:29

标签: ruby-on-rails

我的user模型包含usernamenickname字段。我想要做的是创建一个validations规则,可以单独检查两个字段的唯一性,而不是组合(或我认为的范围)。

2 个答案:

答案 0 :(得分:1)

怎么样?
validate do |r|
  if where("username LIKE ? OR nickname LIKE ?", r.username, r.username).first
    r.errors.add :username, "is already taken"
  end

  if where("username LIKE ? OR nickname LIKE ?", r.nickname, r.nickname).first
    r.errors.add :nickname, "is already taken"
  end
end

答案 1 :(得分:0)

你不能这样做吗?

validates :username, :uniqueness => true
validates :nickname, :uniqueness => true