2013-04-12 2 views
0

У меня есть модель, в которой два поля проверяются, но только один из них является обязательным.Проверка модели. Должен иметь хотя бы один из двух атрибутов.

я написал следующую проверку, но это не работает:

validates_presence_of :results, :on => :update, :if => Proc.new { |order| order.results_image? } 
    validates_presence_of :results_image, :on => :update, :if => Proc.new { |order| order.results? } 
+3

«Это не работает» - это наименее полезная вещь, которую вы могли бы нам рассказать. Что он делает? Что вы ожидали от этого? Вы получаете сообщения об ошибках? – meagar

+0

Нет информации о том, что что-то пошло не так, пусть это сообщение появляется на поле, которое должно быть заполнено. –

ответ

1

Похоже, вам нужен специальный метод Validate, который добавляет в коллекцию ошибок, если оба являются пустыми, но проходит, если либо заполнен ...

def validate 
    errors.add_to_base "one or other is required" if results.blank? and results_image.blank? 
end 
Смежные вопросы