Rails:Content_for部分

时间:2012-02-27 19:37:52

标签: ruby-on-rails-3 activeview

我的布局中有类似的东西

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

在user / bar.html.erb中我有

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

这似乎不起作用。我发现yield :test在部分之前执行,但在执行动作视图之后执行。为什么会这样做,我该怎么办?

2 个答案:

答案 0 :(得分:8)

语法content_for :test do ... end捕获块的内容,content_for :test给出捕获的块。 doc for content_for

在您的代码中,恢复在捕获之前完成,因此无法正常工作。

答案 1 :(得分:2)

我在调用yield之前将局部变量写入局部变量,然后将其渲染到文档中:

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