簡體   English   中英

Rails-在沒有<%=%>的情況下將內容追加到助手方法的塊中

[英]Rails - Append content to helper method's block without <%= %>

我正在嘗試創建一個輔助方法,該方法可以附加內容並顯示其中的塊,如下所示:

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 ...%>進行調用,但是當我這樣調用時,未顯示附加內容

我想念什么?

也許在助手中使用content_tag可能是一種更好的方法。

對於您的錯誤,可能是因為您在視圖中正在執行整個ERB.new(...) ,所以應該在幫助程序中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM