如何查看Active生成的html和文本

时间:2016-07-21 18:35:42

标签: ruby-on-rails actionmailer

我不想实际发送电子邮件,我只是希望能够查看动作邮件程序为HTML和TEXT电子邮件类型生成的电子邮件。

类似于:

html = UserMailer.welcome_email(@user).html
text = UserMailer.welcome_email(@user).text

这可能吗?

更新

我正在尝试此backport渲染:https://github.com/brainopia/backport_new_renderer/blob/master/backport_new_renderer.rb

到目前为止,我有这个:

class EmailController < ActionController::Base
    layout "email"

    def welcome
    end
end

我的/app/views/email/welcome.html.erb只是:

Hello <%= @name %>

然后我创建了一个类似于:

的lib / rasks / render.rake文件
desc "testing controller rendering backport"
task :render do
    puts "hello render"
    @name = "adf"
    EmailController.render(:welcome)
end

错误是:

hello render
rake aborted!
NameError: uninitialized constant EmailController
/Users/path/to/apps/myapp/lib/tasks/render.rake:5:in `block in <top (required)>'
Tasks: TOP => render
(See full trace by running task with --trace)

2 个答案:

答案 0 :(得分:1)

如果您使用的是Rails 5,则可以使用以下方式呈现模板:

ActionController.render('mailer/mymailer.html.erb', assigns: { a: b })

但正如上面提到的海报,您可能只想预览电子邮件。 letter_opener宝石很好。我最近发现并喜欢Mailcatcher

答案 1 :(得分:0)

大概你想要这个,这样你就可以验证电子邮件的外观。

RailsCasts的创建者Ryan Bates写了一个名为letter_opener的宝石。

它允许您将开发中的投放方式设置为:letter_opener(而不是:smtp或其他任何内容),当您的应用发送电子邮件时,会打开一个浏览器窗口,向您显示内容和布局你的电子邮件。

https://github.com/ryanb/letter_opener