На основании документации вы можете использовать процедуру в параметре: if.
validates_presence_of :agenda,
:if => Proc.new { |me| me[:agenda_mailed_faxed] }
И вы также можете избежать использования этого процесса, выполнив свой метод и передав его имя в виде символа .
def mailed_or_faxed
# Your method logic
end
validates_presence_of :agenda,
:if => :mailed_or_faxed
Вы не можете предоставить какой-либо параметр для тех, если. Но это не обязательно.
У вас есть доступ ко всем данным модели в методе проверки.
Например, если вы хотите проверить, что в вашей проверке указано логическое значение повестка дня_файловой в вашей проверке, отлично подойдет следующее:
validates_presence_of :agenda,
:if => :agenda_mailed_faxed
Ваши проверки выполняются внутри вашей модели, которая создается со всеми данными вашей формы.
Вы можете напрямую получить к ним доступ. Не нужно передавать их как параметры.