11

この質問で申し訳ありませんが、もっとオフトピックだと思いますが、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 項目ごとにタグを挿入しますか?

ここでも彼は-%>すべてのブロックに使用しています。

4

1 に答える 1

13

ERB について知っているリソースをいくつか追加したいと思います。

  • Rails extends 、 Railsテンプレートのタグに末尾のハイフンを追加するだけで改行ERBを抑制することができるように:

    <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') %>.
    
  • 1 つequal signを指定すると、文字列がエンコードされます。エンコードを回避するには、2 つequals signs(またはraw )を使用できます。

        Hello, <%== @unencodedOutput %>
    
  • 記号のないタグequalsは、囲まれたコードがscriptletであることを示します。各スクリプトレットがキャッチされて実行され、コードの最終結果がスクリプトレットのポイントで出力に挿入されます。

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

    スクリプトレットは、ループまたは条件付きロジックをテンプレートに埋め込むために最も一般的に使用されます。

詳細については、ERB テンプレートの紹介をご覧ください。

于 2013-11-05T13:10:53.980 に答える