Rails html.erb文件类型,<%%>和<%=%>之间的差异

Stu*_*haw 4 ruby ruby-on-rails

我刚开始深入研究Ruby和Ruby on Rails,我注意到在.html.erb文件中嵌入Ruby语法的两个选项:

<% #ruby code here %>
Run Code Online (Sandbox Code Playgroud)

要么:

<%= #ruby code here %>
Run Code Online (Sandbox Code Playgroud)

我应该如何选择其中一个?

Zac*_*tta 6

<%=输出Ruby的结果.<%只是评估Ruby.

<p>Hi! How are you? 1 + 1 = <%= 1 + 1 %></p>
Run Code Online (Sandbox Code Playgroud)

会成为<p>Hi! How are you? 1 + 1 = 2</p>.

<p>Hi! How are you? 1 + 1 = <% 1 + 1 %></p>
Run Code Online (Sandbox Code Playgroud)

会成为<p>Hi! How are you? 1 + 1 = </p>.

<%通常用于流量控制,例如 if/else.例:

<% if model.nil? %>
  <%= render 'new_model_form' %>
<% else %>
  <%= render 'detail_view' %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

阅读更多信息,请访问http://guides.rubyonrails.org/layouts_and_rendering.html

  • 说得好.它可能只是有助于添加<%通常用于流控制,如if/else,迭代器等 (2认同)