2013-05-14 62 views
0

我有一个字符串存储在我的数据库中,用作自定义布局。是否可以将字符串转换为部分?

我想他们解析自定义布局我的应用程序布局内,通过使用:

render_to_string(partial: custom_template, layout: "pdf_template", locals: locals) 

哪里custom_template是从数据库中的字符串。但是,当我尝试这样做时,我得到:

NoMethodError: undefined method `to_sym' for nil:NilClass 

是否可以做我在做的事情?如果是这样,我能做些什么来完成这个?

我注意到,我可以尝试这样的事情:

render_to_string(text: template, locals: locals, template: "pdf_template") 

而且

render_to_string(inline: template, locals: locals, template: "pdf_template") 

但这样做,它突然找不到模板和回报:

ActionView::MissingTemplate: Missing template layouts/pdf_template with {:handlers=>[:erb, :builder, :coffee, :haml], :formats=>[:pdf], :locale=>[:en, :en]}. Searched in: 
    * "/Users/elephanttrip/Sites/shasta/app/views" 

这很奇怪,因为它在当前位置和定义中工作正常。

回答

0

如果你想在数据库中存储你的视图,默认情况下你应该使用另一个渲染引擎而不是Rails。检查液体宝石(http://railscasts.com/episodes/118-liquid,http://rubygems.org/gems/liquid)。

例如,我们使用这个gem为我们的maillists呈现电子邮件(他们的模板存储在数据库中)。

+0

是的我在这个过程中实际上使用液体。但我试图用全球“包装”来包装“他们”的布局,这也是我们的布局。我不相信Liquid处理那个。 – Trip 2013-05-14 12:59:44

相关问题