0

私はまだHAMLを学んでいて、はっきりしない構文がいくつかあります。

このようなコードを見ると:

-content_for :primary_content do
  .content_container

content_forブロックは何を意味しますか?それは特定のレイアウトへの呼び出しですか?または、.content_containerはどこかのクラスですか?

私が尋ねる理由は、ページに表示されるリンクがいくつかあり、それらがなぜそこに表示されるのかわからないためです。primary_contentがレンダリングするコードのブロックを取得するのだろうか?もしそうなら、どうすればこのコードブロックを見つけたり調べたりできますか?

ありがとう!

4

3 に答える 3

5

HAMLは、次のERBとほぼ同等です。

<%- content_for :primary_content do %>
    <div class='content_container'></div>
<%- end %>

基本的に、「content_for:symbol」は、後でレイアウトなどに含まれる名前付きのコンテンツを定義します。

.somethingは、「CSSクラスのdivを作成してください」というHAMLsomethingの簡単な言い方です。

于 2012-04-20T14:57:48.120 に答える
3

まず最初に:content_forHamlの機能ではありません。これは、RubyonRailsビューで利用できるヘルパーの1つです。ERbでも使用できます。

このメソッドは、指定されたブロックをレンダリングしますが、出力しません。レンダリングの結果を確認するには、に使用されたのと同じシンボルである= yield :keywhereを呼び出す必要があります。コンテンツが生成されたかどうかを確認するには、を使用します。:keycontent_forcontent_for? :key

詳細

于 2012-04-20T14:57:42.840 に答える
1

content_forを使用して、レイアウトのどこかにあるprimary_contentというプレースホルダーにコンテンツを配置します。

http://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-content_for-3F

于 2012-04-20T14:56:51.253 に答える