我的简单If Is Els怎么了?

时间:2011-08-03 20:10:59

标签: ruby-on-rails ruby erb if-statement

我是RoR / Ruby的新手,我似乎无法完成最简单的工作。 (相信我,我搜索谷歌和重读文档,我不知道什么是错的)

所以在我的主视图中,我添加了以下内容:

<%= if 1>2 %>
  <%=     print "helllloooo" %>
<%= else %>
  <%= print "nada" %>
<%= end %>

没有输出任何东西..

**更新* *

好的,我的新CORRECTED代码仍然没有工作

<th>
  <% if 1 > 2 %>
    <%= print "helllloooo" %>
  <% else %>
    <%= print "nada" %>
  <% end %>  
</th>

5 个答案:

答案 0 :(得分:22)

您的陈述无意显示,而不是

<%= if 1>2 %>

<% if 1 > 2 %>

elseend

也是如此

修改

<% if 1 > 2 %>
<%= "helllloooo" %>  #option 1 to display dynamic data
<% else %>
nada                 #option 2 to display static data
<% end %>

答案 1 :(得分:10)

您不需要使用print,甚至ERB作为文本。此外,您的ifelseend语句应为<%,而不是<%=

<% if 1 > 2 %>
helllloooo
<% else %>
nada
<% end %>

答案 2 :(得分:3)

<%=已经意味着在ERB(Ruby自己的模板语言)中“打印到HTML响应”。

所以<%= print '...'表示“打印返回类型的打印'...'”,这是什么。

正确的代码如下:

<% if 1>2 %>
<%= "helllloooo" %>
<% else %>
<%= "nada" %>
<% end %>

实际上你甚至可以省略<%=,因为你只是打印字符串(而不是任意对象):

<% if 1>2 %>
helllloooo
<% else %>
nada
<% end %>

答案 3 :(得分:2)

=是问题所在。请改用<%<%=用于打印内容,<%用于说明。

答案 4 :(得分:1)

用于动态内容:&lt;%=%&gt;