2008-10-02 7 views
4

J'ai un modèle de base ActiveRecord dans lequel j'ai deux champs que je voudrais valider. L'exigence est qu'au moins l'un des champs doit avoir une valeur. Les deux peuvent avoir des valeurs, mais au moins une a besoin d'une valeur.RoR: Question de validation du modèle

Comment exprimez-je avec ce

validates_presence_of 

déclarations? Par exemple:

validates_presence_of :main_file 
validates_presence_of :alt_file 

je ne veux pas d'une erreur à générer si un seul d'entre eux est vide, que si les deux sont vides.

Répondre

5
validates_presence_of :main_file, :if => Proc.new { |p| p.alt_file.blank? } 
validates_presence_of :alt_file, :if => Proc.new { |p| p.main_file.blank? } 
+0

Ne vaut-il pas mieux «blank?» Au lieu de «nil? –

3

changer .nil? à .blank? fait le tour!

Questions connexes