<%和<%=之间的差异

时间:2013-10-26 10:01:37

标签: html ruby-on-rails erb

有人可以告诉我erb中<%= %><% %>标签之间的区别是什么?在哪种情况下我应该使用哪一个?我可以使用哪些其他标签以及它们的含义是什么?

3 个答案:

答案 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输出到屏幕时使用

<%= %>,这意味着在此块中写入的任何内容都会在输出屏幕中打印出来,

其中<% %>块用于执行ruby逻辑部分,例如if条件,loop语句等。

答案 2 :(得分:1)

<% %>

在括号内执行ruby代码。

<%= %>

将某些内容打印到erb文件中。