В чем разница между <% code%> и <% = code%> в Rails erb? - PullRequest
13 голосов
/ 19 марта 2011

Кажется, между ними есть разница, хотя я не могу точно сказать, что именно.

<% code %>

И

<%= code %>

Ответы [ 3 ]

26 голосов
/ 19 марта 2011

<% %> оценит код рубина, содержащийся

<%= %> оценит и отобразит код, содержащийся

Итак, шаблон, содержащий:

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

... будет выводить:

Hello  how are you

... в то время ... * * 1013

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

... будет выводить:

Hello fred how are you

<% %> обычно используется для итераторов

<ul>
  <% @users.each do |user| %>
    <li><%= user.name %></li>
  <% end %>
</ul>
2 голосов
/ 19 марта 2011

<% и %> только оценивают код рубина между ними, в то время как <%= и %> выводят результат оценки.Не путайте, хотя

Это выведет "foo" в журнал доступа и nil на вывод браузера

<%= puts "foo" %>

, тогда как

<%= "foo" %>

вывести строку "foo" в браузер.

1 голос
/ 19 марта 2011

<%= %> печатает возвращаемое значение оператора кода в браузере, а <% %> просто выполняет код.

...