Rails中的电子邮件 - 如何将演示代码保留在我的模型之外

use*_*154 1 email activerecord ruby-on-rails

对于我的Rails应用程序,我们开发了一个半自制的电子邮件系统.我们创建了一个名为Email的模型,然后将其添加到要发送的队列中(使用Web服务).

为了创建模板,我们只是在模型中将字符串拼接在一起,即:

Email < ActiveRecord::Base

   def self.stock_message(recipient)
     email = Email.create do |e|
       e.recipient = recipient
       e.message = String.new
       e.message << "first line <br />"
       e.message << "second line <br />"
     end 
   end

end

#to send:
e = Email.stock_message "foo@bar.baz"
Run Code Online (Sandbox Code Playgroud)

这显然违反了MVC,当我想使用辅助方法格式化字符串时,这确实成为一个问题.如何正确地将视图代码与模型分开?

Nik*_*bak 5

有关Rails网站的专门教程.简而言之,您可以将您的电子邮件模板放在views文件夹下,它们将被视为与Web浏览器的传统html模板非常相似.

另外,根据我的经验,在不同版本的Rails中处理电子邮件非常不一致,所以你可能需要稍微摸索一下.