Хм.Если вы знаете, что errors.blank?
будет истинным, пока не сработает первое условие, то:
(errors.add_to_base I18n.t :error_message; return) if value != 1
Обновление: Ага, вы готовы определить метод.Как насчет объекта Proc
?Это лучше, чем метод здесь, в том, что если блок Proc
возвращает, то вызов будет возвращен из окружающего метода.
test = Proc.new do |cond, msg|
errors.add_to_base I18n.t msg if cond
return unless errors.blank?
end
# ...
test.call value != 1, :error_message
Обратите внимание, что вам не нужно return false
как простой return
вернет nil
, и этого будет достаточно, если какой-нибудь садист не сделает что-то вроде f().class == NilClass
.:-)