Я пытаюсь сделать следующее:
module ApplicationHelper
class PModuleHelper
include ActionView::Helpers::TagHelper
def heading(head = "", &block)
content = block_given? ? capture(&block) : head.to_s
content_tag :h3, content, :class => :module_header
end
end
def getmh
PModuleHelper.new
end
end
Либо передать строку (или символ) методу , заголовок
, либо блок.
In View:
<% mh = getmh %>
<%= mh.heading :bla %> // WORKS
<%= mh.heading do %> // FAILS
test 123
<% end %>
(обратите внимание, что getmh
предназначен только для этого примера, PModuleHelper
возвращается другим процессом в моем приложении, поэтому не нужно комментировать это или предлагать сделать заголовок
обычный вспомогательный метод, а не метод класса)
К сожалению, я всегда получаю следующую ошибку:
wrong number of arguments (0 for 1)
с номером строки для вызова захвата (& блока)
.
Как использовать захватить
внутри собственного вспомогательного класса?