и или оператор в validates_presence_of модели Ruby on Rails - PullRequest
0 голосов
/ 16 марта 2010

У меня есть модель entry.rb, и я пытаюсь сделать полусложную проверку. Я хочу, чтобы для этого требовалось одно или несколько из следующих полей: телефон, телефон2, мобильный, факс, электронная почта или веб-сайт. Как бы вы написали предполагаемый код? Будет ли что-то вроде этой работы?

validates_presence_of :phone and or :phone2 and or :mobile and or :fax and or :email and or :website

1 Ответ

3 голосов
/ 16 марта 2010

Вам не нужны "и", "или" сами по себе будут выполнять то, что вы хотите.

Для этого может быть проще написать свою собственную валидацию для этого.

validate :contact_info

def contact_info
  unless phone or phone2 or mobile or fax or email or website
    errors.add_to_base "Must have at least one form of contact info"
  end
end

Подробнее здесь: http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...