1

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

4

3 回答 3

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​​ 代码都应该是一行 <% %>。例如 - 使用大小写开关

这不起作用:

<% case my_var %>
<% when 10 %>
<% some ruby code %>
<% end %>

但这会

<% case my_var 
  when 10 %>
<% some ruby code %>
<% end %>

所以要小心

于 2013-10-26T10:25:04.520 回答
1

<%= %>当您希望将执行的 ruby​​ 输出到屏幕时使用,这意味着在此块中写入的任何内容都会打印在您的输出屏幕中,

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

于 2013-10-26T10:04:12.713 回答
1
<% %>

执行括号内的 ruby​​ 代码。

<%= %>

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

于 2013-10-26T10:04:20.440 回答