2012-04-20 10 views
0

私はまだHAMLを学んでいますが、私は明確ではないいくつかの構文を持っています。HAML - ページをレイアウトする方法を理解する

私はこのようなコードを参照してください。

-content_for :primary_content do 
    .content_container 

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

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

ありがとうございます!

答えて

5

あなたのHAMLは、以下のERBとほぼ同等です:基本的に

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

、「content_for:記号は」後でレイアウトや何かに含まれるコンテンツの名前の一部を定義します。

.somethingは、「CSSクラスがsomethingのdivを作ってください」と言う短い手口です。

3

まずオフ:content_forはHAMLの機能ではありません。これは、Ruby on Railsのビューで利用できるヘルパーの1つです。あなたはERbでもそれを使うことができます。

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

Details

関連する問題