在Refinery CMS中,如何将页面部分更改应用于现有页面?

时间:2013-07-25 21:26:08

标签: ruby-on-rails refinerycms

我在Google Groups中找到了相同的问题,但是它引用的FAQ页面已经死了,最终的答案看起来与案例有关。

1 个答案:

答案 0 :(得分:1)

事实证明这很简单。在the solution given in the Google Groups thread之后,我使用了Rails控制台。为了将来参考,这里是添加新页面部分并应用于所有现有页面的完整例程:

首先在精炼页面配置文件中添加新的页面页面。这在Refinery docs中有详细说明。在这个例子中,我添加了一个名为" epigraph":

的页面部分
  # Configure global page default parts
  config.default_parts =  ["Body", "Side Body", "Epigraph"]

  # Configure whether to allow adding new page parts
  config.new_page_parts = true

然后更新您的视图文件(app\views\refinery\pages\show.html.erb如果您使用默认值)以包含新的网页部分。就我而言:

   <div class="epigraph">
      <%= raw @page.content_for(:epigraph) %>
   </div>

然后,从rails console,为您添加的每个新页面部分运行此地图命令。对于我的例子:

Refinery::Page.all.map {|p| p.parts.create(:title => "Epigraph", :position => 2) unless p.parts.exists?(:title => "Epigraph") }

我假设position参数指定在编辑页面的选项卡中放置的位置,它从0开始计算。但不是绝对肯定。