У меня есть представление ERB с двумя блоками:
<%= test_h1 do %>
<%= 'test1' %>
<% end -%>
<%= test_h2 do %>
<%= 'test2' %>
<% end -%>
, где test_h1
и test_h2
- аналогичные помощники, но один определяется в файле помощника, а другой через helper_method
вконтроллер:
module TestHelper
def test_h1(&block)
link_to '/url' do
capture(&block)
end
end
end
class TestController < ApplicationController
helper_method :test_h2
def test_h2(&block)
helpers.link_to '/url' do
helpers.capture(&block)
end
end
end
test_h1
дает ожидаемый результат, а test_h2
сначала отображает внутренний блок шаблона:
<a href="/url">test1</a>
test2<a href="/url"></a>
Почему?Какой идиоматический способ написать test_h2
?