0

カスタム レイアウトとして使用されるデータベースに格納された文字列があります。

以下を使用して、アプリのレイアウト内でカスタム レイアウトを解析したいと思います。

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

custom_templateDB からの文字列はどこにありますか。ただし、これを実行しようとすると、次のようになります。

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-liquidhttp://rubygems.org/gems/liquid ) を確認します。

たとえば、この gem を使用してメールリストのメールをレンダリングします (テンプレートは DB に保存されます)。

于 2013-05-14T12:57:05.887 に答える