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
,所以我被诅咒了
答案 0 :(得分:2)
不是真的,但在实践中它的工作方式就像它们一样。你有答案:How can you call class methods on mailers when they're not defined as such?。
基本上,Mailer定义了method_missing
,如果调用的方法不存在,它将创建邮件程序的实例并在其上调用方法。