Почему многие люди используют "-%>" вместо "%>" в Rails?

Извините за этот вопрос, я думаю, что он больше оффтопик, но я ничего не нашел в google!

Я видел много раз, что многие люди используют -%> вместо просто %>. В чем смысл?

Пример:

<% @images.each_slice(6) do |slice| -%>
  <div class="gallery">
    <% slice.each do |image| -%>
      <%= image_tag(image.url, :alt => image.alt) %>
    <% end -%>
  </div>
<% end -%>

Источник: Rails каждый тег вставки цикла каждые 6 элементов?

Здесь он также использовал -%> для всех блоков.

Ответ 1

Я хотел бы добавить некоторые ресурсы, которые я знаю об ERB:

  • Rails расширяет ERB, так что вы можете подавить новую строку просто добавив конечный дефис в теги в шаблонах Rails:

    <ul>
      <% for @item in @items -%>
        <li><%= @item %></li>
      <% end -%>
    </ul>
    
  • Маркеры комментариев используют знак hash:

     <%# This is just a comment %>
    
  • Тег с equals sign указывает, что заключенный код является выражением, и что рендеринг должен заменить элемент кода результатом кода (как строки), когда он отображает шаблон. Используйте выражение для вставки строки кода в шаблон или для отображения содержимого переменной:

     Hello, <%= @name %>.
     Today is <%= Time.now.strftime('%A') %>.
    
  • С одним equal sign строка будет закодирована. Чтобы избежать кодирования, вы можете использовать два equals signs (или raw):

        Hello, <%== @unencodedOutput %>
    
  • Теги без знака equals означают, что закрытый код является скриптлетом. Каждый скриптлет захватывается и выполняется, и конечный результат кода затем вводится в вывод в точке скриптлета.

    <ul>
      <% for @item in @shopping_list %>
        <li><%= @item %></li>
      <% end %>
    </ul>
    

    Сценарии чаще всего используются для встраивания циклов или условной логики в шаблоны:

Прочтите Введение в ERB Templating, чтобы узнать больше.