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"

这很奇怪,因为它在当前位置和定义中运行良好。

4

1 回答 1

0

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

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

于 2013-05-14T12:57:05.887 回答