2008-10-02 2 views
4

У меня есть базовая модель ActiveRecord, в которой у меня есть два поля, которые я хотел бы проверить. Требование состоит в том, что хотя бы одно из полей должно иметь значение. Оба могут иметь значения, но по крайней мере одно требует значения.RoR: вопрос о валидации модели

Как я выразить это с

validates_presence_of 

заявления? Например:

validates_presence_of :main_file 
validates_presence_of :alt_file 

я не хочу об ошибке будет генерироваться, если только один из них пусто, только если оба пусты.

ответ

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

Не лучше ли `blank?` Вместо `nil?`? – 2008-10-02 14:18:16

3

изменение .nil? к .blank? делает трюк!

Смежные вопросы