ActionMailer是静态的方法吗?

时间:2013-12-07 01:29:44

标签: ruby-on-rails

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

要发送我写的电子邮件UserMailer.welcome_email(@user).deliver所以我的问题是:Mailer Controller中声明的方法是静态的吗?因为我在课堂上打电话给welcome_email,所以我被诅咒了

1 个答案:

答案 0 :(得分:2)

不是真的,但在实践中它的工作方式就像它们一样。你有答案:How can you call class methods on mailers when they're not defined as such?

基本上,Mailer定义了method_missing,如果调用的方法不存在,它将创建邮件程序的实例并在其上调用方法。