В ERB или HAML мне нужно оценить одну или несколько функций на основе вывода условного выражения, используя тот же блок HTML для одного.Ruby, оценить одну рубиновую функцию или другую с использованием того же блока DO
В Haml, он хотел что-то вроде этого:
- is_a = @thing.is_a?
= (is_a ? f.method_a : f.method_b) arg_1, |block_arg1| do
#thing
.blah
.inner-thing
= block_arg1.some_method
Обратите внимание, как, в строке 2 моего псевдокоде, я пытаюсь оценить ни одной функции, или другое, основанное на условном. Но мне тоже нужно передать те же аргументы, особенно потому, что я не хочу переписывать блок DO.
Возможно, я мог бы избежать этой проблемы («Я не хочу повторно вводить ...»), заставив этот блок блокировать именованную функцию? Как включить блок HAML или ERB в именованную функцию Ruby?
Я использую Ruby-on-Rails 4. Не это важно; это похоже на более синтаксический вопрос ruby, чем вопрос с каркасом.