Closed1
【Rails】viewテンプレートを使ったHTMLをrenderせずに文字列で取得する
RailsのAction Mailerを使ってメールを送信する際にすぐにメールを送信するのではなく、一旦viewテンプレートをもとにHTMLだけを取得しDBに保存したいケースがあった。
以下のような書き方をすることでHTMLを文字列として取得できた(RailsはAPIモードで使用)
html = ActionController::Base.new.render_to_string(
template: "foo/bar", # app/views内のテンプレートのパス
# テンプレート内で使用する変数
locals: {
example: "hello"
},
format: "html",
layout: false # 使用するレイアウト。無効にする場合はfalse
)
このスクラップは2022/01/06にクローズされました