为什么我必须指定文本格式才能使用 ActionMailer 呈现模板?

发布于 2024-11-06 08:29:49 字数 546 浏览 3 评论 0原文

我正在使用 ActionMailer 3.0.7

根据文档,纯文本电子邮件是默认设置。因此,如果我有一个带有通知方法的 EnquiryNotifier 邮件程序,那么我希望将呈现 app/views/enquiry_notifier/notify.text.plain.erb

如果我只是在通知方法中使用 mail(someparams) ,则电子邮件正文为空。

我读到 ActionMailer 旨在扫描视图目录以查找所有类型的模板。

但是,如果我在块中指定格式并执行

mail(:to => 'somebody', :subject => 'something') do |format|
    format.text
end

此操作,那么我的模板 notify.text.plain.erb 就会被渲染。

也许不相关:如果我不指定格式,但将模板重命名为notify.erb,那么它可以工作,但电子邮件以文本/html 形式发送。

I'm using ActionMailer 3.0.7

According to the docs plain text emails are the default. So if I have an EnquiryNotifier mailer with a notify method then I expect that app/views/enquiry_notifier/notify.text.plain.erb will be rendered.

If I simply use mail(someparams) within the notify method then the body of the email is empty.

I read that ActionMailer is meant to scan the view directory to look for all types of templates.

However, if I specify the format within a block and do

mail(:to => 'somebody', :subject => 'something') do |format|
    format.text
end

then my template notify.text.plain.erb does get rendered.

Maybe unrelated: If I don't specify the format but rename the template to notify.erb then it works but the email is sent as text/html.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

把昨日还给我 2024-11-13 08:29:49

这似乎在 Rails 3.0.6 中对我有用:

  1. 我在邮件程序类中根本没有指定格式,我只是让它自动找到视图。
  2. 我将我的视图命名为“notify.text.erb”

Here's what seems to work for me in rails 3.0.6:

  1. I don't specify a format at all in my mailer class, I just let it find the view automatically.
  2. I name my view "notify.text.erb"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文