首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让premailer gem与active mailer一起工作?

如何让premailer gem与active mailer一起工作?
EN

Stack Overflow用户
提问于 2012-06-21 19:43:46
回答 1查看 862关注 0票数 1

当我在开发中使用letter_opener检查输出时,我可能会遇到一些复杂的问题。

无论如何,当我运行一封电子邮件时,我会调用以下代码:

代码语言:javascript
复制
    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,但它对我不起作用。

EN

回答 1

Stack Overflow用户

发布于 2012-07-03 16:49:09

哇,这是一个语法错误!我不会对此感到惊讶,除非它从来没有给我任何错误消息,所以如果将来有人遇到类似的情况,不要指望你的语法错误已经被捕获。do |format|应该移出方法,渲染应该具有要呈现的实际视图,因此

代码语言:javascript
复制
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
   }

结束

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11137407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档