20

provide()ビュー内でどのように機能するかについて、誰かが明確に説明できますか? 公式ドキュメントを読みましたが、テンプレートの先頭で定義すると、本当に気になるのはこれです

<% provide(:title, 'Help') %>

その後、このコード行があります

<%= yield :title %> 

バックグラウンドで実際に何が起こっているのですか?yield がコードブロックを呼び出すことになっていることは知っています。このコンテキストでは、コード ブロックとは何ですか?

4

1 に答える 1

45

provide後で使用するために、マークアップのブロックを識別子に格納します。この場合、シンボル :title 内の「Help」。<% %>provide は、このコードを実行していて、ビューに出力していないことを示すために囲まれています。

yieldこの場合、そのブロックを吐き出すだけです。<%= %>収量は、ビューに出力されていることを示すために で囲まれています。

変数を設定し、変数を出力すると考えてください。

詳細については、http: //api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-provide を参照してください。これprovideは実際にはのラッパーでcontent_forあるため、そのリンクに良いものがあることに注意してください。

于 2013-07-03T21:19:40.247 に答える