2008-11-21 3 views

ответ

17
<ul> 
    <% @posts.each do |post| -%> 
     <li><%=post.title%></li> 
    <% end -%> 
    </ul> 

Там не будет никаких новых линий в между <ul> и первым <li> и последним закрытием </li> и </ul>. Если - было опущено, то было бы.

+0

Да. <% -%> подавляет новые строки. Это может быть очень полезно при работе с текстом (например, с электронными сообщениями), где это имеет значение. – 2008-11-21 21:16:02

2

Рассмотрим

<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. Иногда вы найдете это полезным, когда работаете бок о бок с дизайнером

Надеюсь, это поможет.

8

Различные варианты оценки кода в Еврорадио следующим образом (они могут быть доступны в Textmate с помощью Ctrl-Shift-.):

  • <% %> Просто оценить содержание.
  • <%= %> Оцените содержание и поместите результат.
  • <%= -%> Оцените содержание и распечатайте результат.
  • <%# %> Содержимое рассматривается как комментарий и не выводится.

Обратите внимание на разницу между puts и print. Поставок всегда добавляет новую строку в конце строки, а печать - нет.

В принципе, -%> говорит, что в конце не выводится новая строка.

1

Немного поздно, но я думаю, что стоит отметить, что вы также можете сделать это:

<%- @posts.each do |post| -%> 
    <li><%= post.title %></li> 
<%- end %> 

Это отсекает любой пробел впереди.

Смежные вопросы