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

Doc*_*r06 5 ruby-on-rails ruby-on-rails-3

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

Vit*_*dan 7

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

validates :email, presence: { if: -> { username.blank? } }
validates :username, presence: { if: -> { email.blank? } }
Run Code Online (Sandbox Code Playgroud)


Doc*_*r06 6

我想到了。您只需将 ^ 更改为 &&

private
def time_or_money
  if time.blank? && money.blank?
    errors[:base] << "Specify Time, Money or Both."
  end
end
Run Code Online (Sandbox Code Playgroud)