2013-05-10 33 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

相關問題