【发布时间】:2011-03-19 10:03:47
【问题描述】:
两者之间似乎有区别,虽然我不能确切地说出来。
<% code %>
和
<%= code %>
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 erb
两者之间似乎有区别,虽然我不能确切地说出来。
<% code %>
和
<%= code %>
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 erb
<% %> 将评估包含的 ruby 代码
<%= %> 将评估并呈现包含的代码
所以一个模板包含:
Hello <% user.name %> how are you?
...将输出:
Hello how are you
...同时...
Hello <%= user.name %> how are you?
...将输出:
Hello fred how are you
<% %> 常用于迭代器
<ul>
<% @users.each do |user| %>
<li><%= user.name %></li>
<% end %>
</ul>
【讨论】:
<% 和 %> 只评估它们之间的 ruby 代码,而 <%= 和 %> 输出评估结果。不过不要混淆
这会将“foo”输出到访问日志,并将nil 输出到浏览器输出
<%= puts "foo" %>
同时
<%= "foo" %>
将“foo”字符串输出到浏览器。
【讨论】:
=。 <% puts "foo" %> 不会将nil 输出到浏览器。它将在服务器控制台中输出foo 并记录。 <%= puts "foo" %> 是你想要的。
<%= %> 将代码语句的返回值打印到浏览器中,<% %> 只是执行代码。
【讨论】: