ruby-on-rails - Ruby on Rails 中 <%= ... %> 和 <% ... %> 有什么区别

标签 ruby-on-rails ruby ruby-on-rails-3

和输出有关系吗?

所以,<%= ...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/

相关文章:

ruby - 如何在 Ruby 中解析打印格式样式的字符串

json - 为 Sinatra 设置默认 content_type

ruby-on-rails-3 - Rails 错误,无法解析 YAML

ruby-on-rails-3 - "new from copy"的 REST 路径

javascript - Ajax 请求、空数据、服务器 Rails 路径

ruby-on-rails - 使用 ActiveRecord 方法构造对象? (Rails 上的 ruby )

ruby 列表子 pids

ruby-on-rails - 通过路径前缀代理对虚拟主机的请求

ruby-on-rails - 我们可以在 rails 3.0 中使用 mailchimp 发送用户通知电子邮件吗

mysql - MySql 和 Rails 中的时区