ruby-on-rails-3activeview

Rails: Content_for in partial


I have something like this in my layout

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

And in user/bar.html.erb I have

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

And this doesn't seem to work. And I have found out that yield :test executes before partial, but after executing the view of the action. Why does it do so and what can I do?


Solution

  • The syntax content_for :test do ... end captures the content of the block, and content_for :test gives the captured block. doc for content_for.

    In your code, the restitution is done before the capture, so it cannot work.