在Rails 3中如何从ActionMailer模板设置邮件主题?

8

如何从Rails 3 ActionMailer模板中设置主题?

我想将主题和正文放在一起。

在Rails 2中,您可以执行以下操作:

<% controller.subject = 'Change of subject' %>

(来自http://www.quirkey.com/blog/2008/08/29/actionmailer-changing-the-subject-in-the-template/)

这篇文章讲述了如何在Rails应用程序中使用ActionMailer更改电子邮件主题。通过在电子邮件模板中包含可嵌入代码,可以轻松地动态更改主题。具体而言,您只需将嵌入式Ruby代码放置在主题标记中并引用您想要更改为主题的变量即可。
2个回答

18

http://edgeguides.rubyonrails.org/action_mailer_basics.html

这里说:

class UserMailer < ActionMailer::Base
default :from => "notifications@example.com"

def welcome_email(user)
  @user = user
  @url  = "http://example.com/login"
  mail(:to => user.email, :subject => "Welcome to My Awesome Site")
  end
end

如果您想从视图中访问它:

http://apidock.com/rails/ActionMailer/Base

如果您需要在视图中访问主题、发件人或接收者,可以通过消息对象来实现:

 You got a new note from <%= message.from %>!
 <%= truncate(@note.body, 25) %>

所以你可以这样做:

message.subject

3
不,我想要从模板中设置主题,而不是在邮件代码中设置。 - PBJ
@David 我认为这个答案是正确的。你应该考虑相应地标记它。 - aef

13

如果想要在电子邮件查看页面设置电子邮件的主题行,只需在视图文件的开头放置以下内容:

<% message.subject = 'This is my subject line' %>

这适用于 Rails 3 和 4。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接