我的布局中有类似的东西
...
<%= yield :test %>
...
<%= render :partial => 'user/bar' %>
在user / bar.html.erb中我有
<% content_for :test do %>
stuff
<% end %>
这似乎不起作用。我发现yield :test
在部分之前执行,但在执行动作视图之后执行。为什么会这样做,我该怎么办?
答案 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 %>