開発中の出力を確認するために letter_opener を使用しているため、複雑な問題が発生する可能性があります。
とにかく、メールを実行すると次のコードが呼び出されます。
add_attachment('mobile.css')
mail(to: @user.email, subject: @alert.title do |format|
format.html {
Premailer.new(
"#{render}",
:with_html_string => true,
:css => [Rails.root.join("app/assets/mail/basestyles.css"),Rails.root.join("app/assets/mail/" + Site.current.name + ".css")],
:preserve_styles => true
).to_inline_css
}
format.text {
Premailer.new(
"#{render}",
:with_html_string => true,
:css => [Rails.root.join("app/assets/mail/basestyles.css"),Rails.root.join("app/assets/mail/" + Site.current.name + ".css")],
:preserve_styles => true
).to_plain_text
}
end
)
これでエラーは発生しませんが、実行すると、スタイルがインラインで設定されていない html ファイルが出力されます。
ビューは正しくレンダリングされます。premailer を実行してインライン スタイルを生成すると問題なく動作しますが、activemailer を使用すると問題が発生します。
How to Integrate 'premailer' with Rails を見てきましたが、うまくいきません。