13

レイアウトにこのようなものがあります

...
<%= yield :test %>
...
<%= render :partial => 'user/bar' %>

そしてuser/bar.html.erbに私は持っています

<% content_for :test do %>
stuff
<% end %>

そして、これはうまくいかないようです。そしてyield :test、それは部分的な前に実行されますが、アクションのビューを実行した後に実行されることがわかりました。なぜそうするのですか、そして私は何ができますか?

4

2 に答える 2

11

この構文content_for :test do ... endは、ブロックのコンテンツをキャプチャし、content_for :testキャプチャされたブロックを提供します。content_for のドキュメント

コードでは、復元はキャプチャの前に行われるため、機能しません。

于 2012-02-27T20:00:37.483 に答える
4

を呼び出す前にパーシャルをローカル変数に書き込み、yield後でドキュメントにレンダリングしました。

...
<% partial = render(:partial => 'user/bar') %>
<%= yield :test %>
...
<%= partial %>
于 2015-07-07T23:51:57.500 に答える