Rails: Content_for в частичном - PullRequest
       23

Rails: Content_for в частичном

9 голосов
/ 27 февраля 2012

У меня есть что-то вроде этого в моем макете

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

А в user / bar.html.erb у меня

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

И это, похоже, не работает. И я обнаружил, что yield :test выполняется до частичного, но после выполнения представления действия. Почему это так и что я могу сделать?

Ответы [ 2 ]

8 голосов
/ 28 февраля 2012

Синтаксис content_for :test do ... end захватывает содержимое блока, а content_for :test дает захваченный блок. doc для content_for .

В вашем коде восстановление выполняется до захвата, поэтому он не может работать.

2 голосов
/ 08 июля 2015

Я записал частичное в локальную переменную до , вызвав yield, а затем преобразовал его в документ:

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