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