和输出有关系吗?
所以,<%= ...code... %>
用于代码执行后输出,<% ...code... %>
仅用于执行代码?
最佳答案
这是 ERB模板标记(Rails 支持的众多模板语言之一)。此标记:
<% ... %>
用于评估 Ruby 表达式。但是,该表达式的结果没有被执行。相比之下,标记:
<%= ... %>
做同样的事情(运行里面的任何 Ruby 代码)但是它在结果上调用 to_s
并用结果字符串替换标记。
简而言之:
<% just run code %>
<%= run code and output the result %>
例如:
<% unless @items.empty? %>
<ul>
<% @items.each do |item| %>
<li><%= item.name %></li>
<% end %>
</ul>
<% end %>
相比之下,这里有一些与上述等同的 Haml 标记:
- unless @items.empty?
%ul
- @items.each do |item|
%li= item.name
关于ruby-on-rails - Ruby on Rails 中 <%= ... %> 和 <% ... %> 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11247480/