我有一个包含简单开关的助手。我知道我有它工作,因为它正在其他页面上工作。但是,在这个特定的页面上它不起作用..我认为它是因为在if else中有一个end
,所以它早就结束了if else。这是代码:
我相信这部分正在发挥作用:
<% if popup == "off" %>
<% content_for :main do %>
<% end %>
这部分不是那么多:
<% if popup == "off" %>
<% end %> << this end should be displayed if popup = off
<% end %>
答案 0 :(得分:3)
你可以这样做:
<% if popup == "off" %>
<%= "<% end %>" %> << this end should be displayed if popup = off
<% end %>
或试试这个:
<% if popup == "off" %>
<% end %> << this end should be displayed if popup = off
<% end %>
答案 1 :(得分:0)
如果您只想显示单词end
,请不要将其括在标签中。标签中包含的任何内容都被解释为Ruby代码,任何内容都不会完全按原样打印。
<% if popup == "off" %>
end << this will now be interpreted as text, not ruby code
<% end %>
答案 2 :(得分:0)
ERB(和Ruby)不能那样工作。
我认为你正在试图将它视为将一个HTML标记而不是end
结束到Ruby块,并希望这两个代码段之间的所有内容都在{{1}中运行阻止。
这就是你需要的。介于两者之间的所有内容都将包含在content_for
块中:
content_for
答案 3 :(得分:0)
似乎所有关于执行<%= "<% end %>" %>
会导致语法错误的建议。看起来很简单,最终只是重组我的应用并摆脱了<% content_for :main do %>