我可能会遇到并发症,因为我使用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文件,没有任何样式设置为内联。
正确呈现视图,当我运行预编译器自己生成内联样式时它工作正常,当我使用activemailer时遇到问题。
我看过How to Integrate 'premailer' with Rails,但它对我不起作用。
答案 0 :(得分:0)
add_attachment('mobile.css')
mail(to: @user.email, subject: @alert.title) do |format|
format.html {
Premailer.new(
"#{render 'path to view to 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
}
端