如何查看Active生成的html和文本
How to view the html and text generated by Active
我不想实际发送电子邮件,我只想查看操作邮件程序为 HTML 和 TEXT 电子邮件类型生成的电子邮件。
所以像这样:
html = UserMailer.welcome_email(@user).html
text = UserMailer.welcome_email(@user).text
这可能吗?
更新
我正在尝试此向后移植渲染: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)
大概您想要这个,以便您可以验证电子邮件的外观。
有一个 gem 由 RailsCasts 的创建者 Ryan Bates 编写,名为 letter_opener
。
它允许您将开发中的交付方法设置为 :letter_opener
(而不是 :smtp
或其他任何方式),当您的应用程序发送电子邮件时,浏览器 window 打开显示你的电子邮件的内容和布局。
如果您使用的是 Rails 5,您可以使用以下方式呈现模板:
ActionController.render('mailer/mymailer.html.erb', assigns: { a: b })
但是正如上面的发帖者所提到的,您可能只想预览电子邮件。 letter_opener gem is good. I recently discovered and love Mailcatcher.
我不想实际发送电子邮件,我只想查看操作邮件程序为 HTML 和 TEXT 电子邮件类型生成的电子邮件。
所以像这样:
html = UserMailer.welcome_email(@user).html
text = UserMailer.welcome_email(@user).text
这可能吗?
更新
我正在尝试此向后移植渲染: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)
大概您想要这个,以便您可以验证电子邮件的外观。
有一个 gem 由 RailsCasts 的创建者 Ryan Bates 编写,名为 letter_opener
。
它允许您将开发中的交付方法设置为 :letter_opener
(而不是 :smtp
或其他任何方式),当您的应用程序发送电子邮件时,浏览器 window 打开显示你的电子邮件的内容和布局。
如果您使用的是 Rails 5,您可以使用以下方式呈现模板:
ActionController.render('mailer/mymailer.html.erb', assigns: { a: b })
但是正如上面的发帖者所提到的,您可能只想预览电子邮件。 letter_opener gem is good. I recently discovered and love Mailcatcher.