部分,布局,模板渲染问题

情况

因此,当我访问页面时,我希望能够将布局应用于局部(我有三个部分,我想要相同的布局)。 现在,我正在尝试使用此命令:

 "shared/services/essay", :layout => "layouts/services/tab_pane", :locals => { :service => "essay" } %> 

shared/services/essay如下:

  

blah.

blah.

blah.

和`layouts / services / tab_pane’如下:

 <div class="tab-pane fade in" id= >  

Workflow

Our Value Proposition for You

问题

当我加载它时,我只是得到布局HTML。 没有任何内容通过。 从本质上讲,收益率并没有拉入内容或其他东西。

有人可以帮忙吗? 谢谢!

我尝试过的事情

如果我尝试Ruby指南中提到的嵌套布局(添加…

  "layouts/services/tab_pane", :locals => { :service => "essay" } %> 

对于我的部分并进行所有正确的名称更改),我的第二部分包含来自第一部分和第三部分的内容。 因此,我的第二部分将包含每个部分的2个blah,而我的第三个部分将包含每个部分的3个blah。 谢谢!

更新:

问题现在已经解决了(感谢迈克尔),但现在我想我想知道在处理这样的事情时最佳做法是什么。 我应该在将来避免这样的事情并且只担心给整个页面提供模板/布局而不是页面中的部分内容吗? 谢谢!

我想知道你是否受到局部视图的ViewFlow处理。 你是不是几次打电话给这个部分? 问题是rails将content_for数据存储在哈希中并且非破坏性。

您可以尝试添加:

def yield_content!(content_key) view_flow.content.delete(content_key) end

在您的ApplicationHelper中,在布局文件中调用yield_content而不是yield。