【发布时间】:2015-06-25 15:08:13
【问题描述】:
这是 Michael Hartle 书中的工作代码。这是app/mailers/user_mailer.rb 中的邮件代码,用于为用户帐户创建激活邮件:
class UserMailer < ActionMailer::Base
def account_activation(user)
@user = user
mail to: user.email, subject: "Account activation"
end
end
邮件的预览是使用test/mailers/previews/user_mailer_preview.rb中的ruby文件生成的:
class UserMailerPreview < ActionMailer::Preview
def account_activation
user = User.first
user.activation_token = User.new_token
UserMailer.account_activation(user)
end
end
account_activation 方法在user_mailer.rb 中定义为实例方法。但它在预览生成器中用作类方法。我误解了代码还是这里发生了其他事情?
致所有有同样疑问的人
这就是 ActionMailer 的工作原理。电子邮件被定义为扩展 ActionMailer::Base 的类中的实例方法,但您可以将它们作为类方法访问。
【问题讨论】:
-
无法复制。
标签: ruby-on-rails ruby