Я заметил, что в некоторых линиях взглядов рельсов, это используется:Когда вы используете <% -%> вместо <% %>
<% # Code... -%>
вместо:
<% # Code... %>
В чем разница?
Я заметил, что в некоторых линиях взглядов рельсов, это используется:Когда вы используете <% -%> вместо <% %>
<% # Code... -%>
вместо:
<% # Code... %>
В чем разница?
<ul>
<% @posts.each do |post| -%>
<li><%=post.title%></li>
<% end -%>
</ul>
Там не будет никаких новых линий в между <ul>
и первым <li>
и последним закрытием </li>
и </ul>
. Если - было опущено, то было бы.
Рассмотрим
<div>
<% if @some_var == some_value %>
<p>Some message</p>
<% end %>
</div>
Код выше доходности к ниже HTML, если @some_var является some_value
<div>
<p>Some message</p>
</div>
Если вы положили - в закрывающий тег, то интерпретатор ERB будет удалите новые линии для тех, у кого есть кодовая метка, в том числе - и в результате получится следующее:
<div>
<p>Some message</p>
</div>
Это полезно, если вам нужен хороший код для HTML. Иногда вы найдете это полезным, когда работаете бок о бок с дизайнером
Надеюсь, это поможет.
Различные варианты оценки кода в Еврорадио следующим образом (они могут быть доступны в Textmate с помощью Ctrl-Shift-.):
<% %>
Просто оценить содержание.<%= %>
Оцените содержание и поместите результат.<%= -%>
Оцените содержание и распечатайте результат.<%# %>
Содержимое рассматривается как комментарий и не выводится.Обратите внимание на разницу между puts
и print
. Поставок всегда добавляет новую строку в конце строки, а печать - нет.
В принципе, -%>
говорит, что в конце не выводится новая строка.
Немного поздно, но я думаю, что стоит отметить, что вы также можете сделать это:
<%- @posts.each do |post| -%>
<li><%= post.title %></li>
<%- end %>
Это отсекает любой пробел впереди.
Да. <% -%> подавляет новые строки. Это может быть очень полезно при работе с текстом (например, с электронными сообщениями), где это имеет значение. – 2008-11-21 21:16:02