убедитесь, что ваш метод возвращает либо nil
, либо false
:
def this_may_fail
some_logic rescue nil
end
затем вы можете использовать модификатор if, чтобы проверить возвращаемое значение вашего метода и присвоить значение, только если оно не nil
или false
:
post['Caption'] = this_may_fail if this_may_fail
или вы можете кэшировать возвращаемое значение this_may_fail
в локальной переменной, если вам не нравится дважды вызывать метод для условия if и присваивания.
the_value = this_may_fail
post['Caption'] = the_value if the_value
также обратите внимание, что модификатор rescue
ловит только StandardError
и его подклассы.