Rails v2.アプリでコードを見ました。
layout/car_general.html.erb
(このビューはcars_controllerのメソッドによって呼び出されます)で、私はコードを見ました:
<body>
<%= yield %>
<%= javascript_include_tag 'jquery-1.4.2.min' %>
<% javascript_tag do %>
<%= yield :jstemplates %>
var some_car = new Object;
<%= yield :some_car %>
<% end -%>
</body>
尋ねる2つの質問:
<body>
の下の最初の<%= yield%>の利回りの内容はどこで確認できますか。<%= yield :jstemplates %>
を使用してビューにjsコードを含める特定の方法ですか?<%= yield :some_car %>
はどうですか?ビューを指しているのか、単に値を表示していますかof some_car
?引数を指定しないと、yieldは現在のコントローラー/アクションのテンプレートをレンダリングします。したがって、cars/show
ページ、レンダリングされますviews/cars/show.html.erb
。
引数を渡すと、テンプレートの外部でレンダリングするコンテンツをテンプレートで定義できます。たとえば、cars/show
ページにはフッターでレンダリングしたい特定のhtmlスニペットがあります。ショーテンプレートとcar_general
レイアウト:
show.html.erb:
<% content_for :footer do %>
This content will show up in the footer section
<% end %>
layouts/car_general.html.erb
<%= yield :footer %>
Railsガイドにはyieldおよびcontent_forの使用に関する適切なセクションがあります。 http://guides.rubyonrails.org/layouts_and_rendering.html#understanding-yield
content_for
も有用であり、他にもいくつかの例があります。 Rails 3.1.1のためのものですが、この機能は2.3からほとんど変わっていません。3.0.xおよび3.1.xにも適用されるはずです。