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

时间:2011-05-11 17:57:15

标签: ruby-on-rails ruby-on-rails-3 actionmailer

我正在使用ActionMailer 3.0.7

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

如果我只是在notify方法中使用mail(someparams),那么电子邮件的正文是空的。

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

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

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

然后我的模板notify.text.plain.erb会被渲染。

也许不相关:如果我没有指定格式但是将模板重命名为notify.erb然后它可以工作,但电子邮件是以text / html的形式发送的。

1 个答案:

答案 0 :(得分:5)

以下是rails 3.0.6中似乎对我有用的东西:

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