Ruby on rails 如果else不工作,因为其中包含end

Ruby on rails 如果else不工作,因为其中包含end,ruby-on-rails,Ruby On Rails,我有一个助手,包含一个简单的开关。我知道我有它的工作,因为它在其他页面上工作。但是,在这个特定页面上,它将不起作用。。我认为这是因为if-else中有一个end,所以它提前结束if-else。代码如下: 我相信这部分是有效的: <% if popup == "off" %> <% content_for :main do %> <% end %> 这一部分并非如此: <% if popup == "off" %>

我有一个助手,包含一个简单的开关。我知道我有它的工作,因为它在其他页面上工作。但是,在这个特定页面上,它将不起作用。。我认为这是因为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 %>


如果您只想显示单词
end
,请不要将其括在标签中。标记中包含的任何内容都被解释为Ruby代码,任何内容都不会按原样打印

<% if popup == "off" %>
   end  << this will now be interpreted as text, not ruby code
<% end %>


end如果您只想显示单词
end
,请不要将其括在标签中。标记中包含的任何内容都被解释为Ruby代码,任何内容都不会按原样打印

<% if popup == "off" %>
   end  << this will now be interpreted as text, not ruby code
<% end %>

ERB(和Ruby)不是这样工作的

我认为您将其视为试图将HTML标记而不是
end
结束到Ruby块,并且希望这两个代码段之间的所有内容都在
content\u for
块中运行

这是你需要的。介于两者之间的所有内容都将包含在
块的
内容中:

<% if popup == "off" %>
  <% content_for :main do %>
    your block code will be evaluated here.
  <% end %>  
<% end %>

您的块代码将在此处计算。
ERB(和Ruby)不是这样工作的

我认为您将其视为试图将HTML标记而不是
end
结束到Ruby块,并且希望这两个代码段之间的所有内容都在
content\u for
块中运行

这是你需要的。介于两者之间的所有内容都将包含在
块的
内容中:

<% if popup == "off" %>
  <% content_for :main do %>
    your block code will be evaluated here.
  <% end %>  
<% end %>

您的块代码将在此处计算。
您可以这样做:

<% 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 %>


似乎所有执行
的建议都会导致语法错误。。可能看起来是一个简单的解决办法,只是重新构造了我的应用程序,并摆脱了

的要求似乎所有建议都会导致语法错误。。这似乎是一个简单的解决方法,它只是重新构造了我的应用程序,并摆脱了

的要求。您是否正在尝试显示单词end?你会想用Russel说的话that@spike.. 不,我想显示的是
(注意
结尾处的引号)。是的,我打错了。我想那时你需要,但也许有人知道清洁工way@Jonah你应该试着澄清你的问题,每个人看起来都比其他人更困惑;-)您正在尝试显示单词end吗?你会想用Russel说的话that@spike.. 不,我想显示的是
(注意
结尾处的引号)。是的,我打错了。我想那时你需要,但也许有人知道清洁工way@Jonah你应该试着澄清你的问题,每个人看起来都比其他人更困惑;-)试试spike的第二种解决方案,它应该可以解决您的问题。我认为原因可能是助手没有正确加载。不管怎么说,我差不多是时候对内容做出正确的选择了:不管怎么说,主要还是过度了。对不起,浪费了你的时间!试试spike的第二种解决方案,它应该可以解决您的问题。我认为原因可能是助手没有正确加载。不管怎么说,我差不多是时候对内容做出正确的选择了:不管怎么说,主要还是过度了。对不起,浪费了你的时间!