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 回答