验证一个字段或另一个字段或两者的存在(OR)

时间:2014-10-20 16:47:56

标签: ruby-on-rails ruby-on-rails-3

所以我正在看这个link,但我想知道如何做'OR'而不是'XOR'。有谁知道如何做到这一点?我试图使用Rails 3来做到这一点。

2 个答案:

答案 0 :(得分:6)

Rails 4有一个简短的选项(不确定Rails 3):

validates :email, presence: { if: -> { username.blank? } }
validates :username, presence: { if: -> { email.blank? } }

答案 1 :(得分:4)

我明白了。所有你需要改变的是^到&&

private
def time_or_money
  if time.blank? && money.blank?
    errors[:base] << "Specify Time, Money or Both."
  end
end