使用祖先gem在显示页面上使用不同的模板

时间:2013-05-10 12:35:07

标签: ruby-on-rails ancestry

Hello Stackoverflow偷看,

我关注使用Ancestry gem使用动态页面的ryan bates railscast。我想知道是否有办法使用多个节目页面。

例如,我有部分和页面。我想显示部分的模板和页面的模板。目前这是我的代码。

提前致谢。

控制器

class PagesController < ApplicationController
    before_filter :find_page, only: [:show, :edit, :update, :destroy]

  def show
    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @page }
    end
  end

  private
      def find_page
        @page = Page.find_by_slug!(params[:id].split("/").last)
      end   

end

模型

class Page < ActiveRecord::Base
  attr_accessible :content, :name, :parent_id, :slug

  validates :slug, uniqueness: true, presence: true,
                 exclusion: {in: %w[signup login]}

  before_validation :generate_slug

  has_ancestry

  def to_param
    slug
  end

  def generate_slug
    self.slug ||= name.parameterize
  end

  def find_page
    @page = Page.find_by_slug(params[:id].split('/').last)
  end
end

我想为show.html.erb页面提供两个不同的模板。这可能吗?

1 个答案:

答案 0 :(得分:0)

我不确定我理解。可能是这样的:

def show
  respond_to do |format|
    format.html do
      if @page.parent_id
        render <path to page view>
      else
        render <path to section view>
      end
    end

    format.json { render json: @page }
  end
end