3

我想呈現存儲在數據庫中的液體模板。「模板丟失」當呈現液體模板

這裏是控制我的「秀」行動:

def show 
    @organization = Organization.find_by_subdomain(request.subdomain) 
    @template = Liquid::Template.parse(Template.find(@organization.current_template).body) 
    @page = @organization.pages.find(params[:id]) 

    respond_to do |format| 
     format.html { render @template.render('page' => @page), :template => false} 
     format.json { render json: @page } 
    end 
    end 

然而,當我訪問該頁面,我得到以下錯誤「模板丟失」異常(注意,「測試測試」是網頁對象,這是目前在模板中所呈現的唯一的事情)的身體屬性:

Missing template /testing testing with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee, :haml]}. 
Searched in: * "/Users/ashercohen/Documents/Rails/Vocalem-Rails/app/views" 
* "/Users/ashercohen/.rvm/gems/ruby-1.9.3-p194/gems/twitter-bootstrap-rails-2.1.1/app/views" 
* "/Users/ashercohen/.rvm/gems/ruby-1.9.3-p194/gems/devise-2.1.2/app/views" 

爲什麼試圖尋找另一種模板,當我專門通過:template => false說法?有什麼我在這裏失蹤?我試圖繞過使用任何模板文件,因爲它似乎不應該在這裏需要(雖然我不強烈反對,如果我錯了)。

回答

3

由於渲染幾乎總是需要一個文件名,而@template.render('page' => @page)包含純html。你應該像這樣調用渲染:

render :text => @template.render('page' => @page), :content_type => :html 
+0

它的工作原理!謝謝! – Asherlc 2012-07-29 21:35:36