我的简单的 If Else 有什么问题吗?
我对 RoR/Ruby 很陌生,我似乎无法让最简单的事情发挥作用。 (相信我,我搜索谷歌并重读文档,我不知道出了什么问题)
所以在我的主要视图中,我添加了以下内容:
<%= if 1>2 %>
<%= print "helllloooo" %>
<%= else %>
<%= print "nada" %>
<%= end %>
并且没有输出任何内容..
**更新**
好的,这是我的新更正代码,但它仍然无法工作
<th>
<% if 1 > 2 %>
<%= print "helllloooo" %>
<% else %>
<%= print "nada" %>
<% end %>
</th>
Im new to RoR/Ruby and i cant seem to get the simplest thing to work. (trust me, ive search google and reread docs, i dont know what wrong)
So in my main view, I added the following:
<%= if 1>2 %>
<%= print "helllloooo" %>
<%= else %>
<%= print "nada" %>
<%= end %>
And nothing is outputted..
**UPDATE**
Ok heres my new CORRECTED code and its STILL NOT WORKING
<th>
<% if 1 > 2 %>
<%= print "helllloooo" %>
<% else %>
<%= print "nada" %>
<% end %>
</th>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您的语句不打算显示,因此不要
编写
为
else
和end
相同的内容编辑
Your statements are not intended to be displayed so instead of
write
Same thing for
else
andend
EDIT
您不需要对文本使用
print
,甚至 ERB。另外,您的if
、else
和end
语句应该是<%
,而不是< %=:
You don't need to use
print
, or even ERB for the text. Also, yourif
,else
, andend
statements should be<%
, not<%=
:<%=
在 ERB(Ruby 自己的模板语言)中已经意味着“打印到 HTML 响应”。所以
<%= print '...'
的意思是“打印 print '...' 的返回类型”,这没什么。正确的代码如下所示:
事实上,您甚至可以省略
<%=
因为您只是打印字符串(而不是任意对象):<%=
already means "print to the HTML response" in ERB (Ruby's own templating language).So
<%= print '...'
means "print the return type of print '...'" which is nothing.The right code would look like:
In fact you can even omit the
<%=
because you're just printing strings (not arbitrary objects):=
就是问题所在。使用<%
代替。<%=
用于打印某些内容,而<%
用于指示。The
=
is the problem. Use<%
instead.<%=
is for printing something, while<%
is for instructions.对于动态内容使用:<%= %>
for dynamic content use: <%= %>