我有一个存储在我的数据库中的字符串,用作自定义布局。
我想通过使用:
解析我的应用布局中的自定义布局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 :(得分:0)
如果要将视图存储在数据库中,则应默认使用其他渲染引擎而不是Rails。检查液体 gem(http://railscasts.com/episodes/118-liquid,http://rubygems.org/gems/liquid)。
例如,我们使用此gem为我们的maillists呈现电子邮件(他们的模板存储在数据库中)。