Rails-在没有<%=%>

时间:2019-03-14 23:38:50

标签: ruby-on-rails ruby view rendering

我正在尝试创建一个辅助方法,该方法可以附加内容并显示其中的块,如下所示:

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 :(得分:0)

也许在您的助手中使用content_tag是一种更好的方法。

对于您的错误,可能是因为您在视图中正在做整个ERB.new(...),应该在帮助程序中。