Rails erb中和之间的区别是什么?

两者之间似乎存在差异,虽然我无法确切地知道究竟是什么。

 

  

<% %>将评估包含的ruby代码

<%= %>将评估并呈现包含的代码

所以模板包含:

 Hello <% user.name %> how are you? 

……会输出:

 Hello how are you 

…同时…

 Hello <%= user.name %> how are you? 

……会输出:

 Hello fred how are you 

<% %>通常用于迭代器

 
    <% @users.each do |user| %>
  • <%= user.name %>
  • <% end %>

<%%>仅评估它们之间的ruby代码,而<%=%>输出评估结果。 不要混淆

这将输出“foo”到访问日志,并输出到浏览器输出

 <%= puts "foo" %> 

 <%= "foo" %> 

将“foo”字符串输出到浏览器。

<%= %>将代码语句的返回值输出到浏览器中, <% %>只执行代码。