有人可以告诉我erb中<%= %>
和<% %>
标签之间的区别是什么?在哪种情况下我应该使用哪一个?我可以使用哪些其他标签以及它们的含义是什么?
答案 0 :(得分:6)
如上所述
<% %>
将内置ruby代码并对其进行评估
<%= %>
将内部的ruby代码进行评估并在屏幕上打印结果,这通常意味着将返回一个可打印的结果,可以在html中用作普通文本
这样做
<div class="<% 'myclass' %>">
将导致
<div class="">
和<div class="<%= 'myclass' %>">
将导致
<div class="myclass">
你可以看到这个railscast进一步解释它 http://railscasts.com/episodes/100-5-view-tips
另外,你可能会在将来遇到这个,甚至忘记我写了这个,但无论如何它可能是有用的
在某些情况下,并非每行ruby代码都应该是&lt; %%&gt;行。 例如 - 使用案例开关
这不起作用:
<% case my_var %>
<% when 10 %>
<% some ruby code %>
<% end %>
但这将
<% case my_var
when 10 %>
<% some ruby code %>
<% end %>
所以要小心那个
答案 1 :(得分:1)
<%= %>
,这意味着在此块中写入的任何内容都会在输出屏幕中打印出来,
其中<% %>
块用于执行ruby逻辑部分,例如if
条件,loop
语句等。
答案 2 :(得分:1)
<% %>
在括号内执行ruby代码。
<%= %>
将某些内容打印到erb文件中。