Rails - добавить содержимое в блок вспомогательного метода без <% =%> - PullRequest
1 голос
/ 15 марта 2019

Я пытаюсь создать вспомогательный метод, который добавляет материал и показывает блок внутри него, например:

def test &block 
   %{<div> 
      <div> Example content </div>
       <p> #{capture(&block)} </div>
     </div>}.html_safe()
end

, когда я вызываю его так

<%= test do %>
 **stuff
<% end %>

он работает правильно, но когда мне также нужно вызвать его с контроллера с помощью ERB.new (), и когда я это делаю, я получаю сообщение об ошибке:

вызов:

@result = ERB.new(
%{<%= view_context.test do  %>
    <div>content to show inside</div>
  <% end %>}
).result(binding)

ошибка:

SyntaxError ((erb):2: syntax error, unexpected ')'
ncat(( view_context.test do  ).to_s); _erbout.concat "\n

, поэтому мне нужно звонить без " = ", <% test do ...%>, но когда я это так называю, добавляетсясодержимое не отображается

что мне не хватает?

1 Ответ

0 голосов
/ 15 марта 2019

Возможно, использование content_tag в вашем помощнике было бы лучшим способом сделать это.

Возможно, из-за вашей ошибки, потому что вы делаете целые ERB.new(...) по вашему мнению, должно быть впомощник.

...