2010-03-15 5 views
0

J'ai un modèle entry.rb et j'essaie de faire une validation semi-compliquée. Je veux qu'il exige un ou plusieurs des champs suivants: téléphone, téléphone2, mobile, fax, email ou site web. Comment écririez-vous le code prévu? Est-ce que quelque chose comme ça fonctionnerait?et ou opérateur dans validates_presence_of d'un modèle Ruby on Rails

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

Répondre

3

Vous n'avez pas besoin du "et", "ou" par lui-même accomplira ce que vous voulez.

Il peut être plus simple d'écrire votre propre validation personnalisée pour cela.

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 

Plus de détails ici: http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html

+0

Merci, je vous remercie de votre aide. – BasicObject