2013-05-10 60 views
0

你好Stackoverflow窥视,使用祖先宝石在显示页面上使用不同的模板

我跟随ryan贝茨railscast关于使用动态页面使用Ancestry宝石。我想知道是否有办法使用多个展示页面。

例如,我有章节和页面。我想为这些部分显示一个模板并为这些页面显示一个模板。目前这是我的代码。

在此先感谢。

控制器

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页两种不同的模板。那可能吗?

回答

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 
+0

这些部分将成为树的根。合理? – wmena 2013-05-10 12:45:48

+0

其实让我试试你的方法认为可以工作。 – wmena 2013-05-10 12:46:38

+0

它的作品谢谢! – wmena 2013-05-10 13:20:09

相关问题