【问题标题】:How to render nested child pages in Comfortable Mexican Sofa如何在舒适的墨西哥沙发中呈现嵌套的子页面
【发布时间】:2015-01-19 15:49:32
【问题描述】:
这就是我想要完成的,但我不确定从哪里开始:
我有以下页面结构:
在主页上,我想将 Publications 的每个子项显示为一个部分。这两个部分将是警报和本周新故事。然后,一个部分的最新发布的子项将在该部分中呈现。所以在主页上我会有以下部分和文章:
警报 -> 东部的麻烦-1-20-2015
本周新闻故事 -> 国会对农业法案进行大修
我已经阅读了 CMS wiki,但我不知道如何处理这个问题。我是否使用标签和集合?
【问题讨论】:
标签:
ruby-on-rails
comfortable-mexican-sofa
【解决方案1】:
您需要创建一个部分才能使其正常工作。
在这里创建一个/app/views/comfy/cms/content/_section_list.html.erb
然后在主页的布局中将{{cms:partial:section_list}} 添加到要显示部分的 html 中。
然后在_section_list.html.erb 中执行以下操作:
<% @cms_page.children.each do |section| %>
<h1><%= section.blocks.where(identifier: 'header').first.content %></h1>
<%= section.children.first.blocks.where(identifier: 'content').first.content %>
<% end %>
注意:确保块标识符正确,我假设您在上面的 sn-p 中有 header 和 content。
【解决方案2】:
在 Publication 使用的 cms 布局中定义部分标记 {{ cms:partial:foo/bar/articles }}
在该部分中,您将可以访问@cms_page。现在你可以渲染出来了。
@cms_page.children 会给你Alerts 和News Story of the Week 页面。然后您可以获取这些页面的第一个子页面。
它在后面使用acts_as_tree,所以非常简单。