我正在尝试在使用 Devise gem 的 rails 3 应用程序中注册用户时发送电子邮件。每次我尝试发送电子邮件时,都会收到以下错误:
NoMethodError in Devise::RegistrationsController#create用户邮件程序的未定义方法"welcome_email":类
我的应用程序/模型/用户.rb 有以下代码...
after_create :send_welcome_email
def send_welcome_email
UserMailer.welcome_email(self).deliver
end
我的应用程序/邮件/user_mailer.rb 有以下代码...
class UserMailer < ActionMailer::Base
default from: "support@mysite.com"
def welcome_email(user)
@user = user
@url = "http://mysite.com/login"
mail(:to => "#{user.email}", :subject => "Welcome to My Awesome Site")
end
end
该方法welcome_email存在,所以我不确定为什么会出现错误。在过去的几个小时里,一直在尝试解决此问题。
提前感谢您的帮助!!一如既往,如果你给我一个好的答案,我会接受的。亚历克斯
看起来welcome_email
是一个实例方法。看起来错误说它需要是一个类方法。因此,请尝试将方法声明重写为:
定义self.welcome_email(用户)
我想这应该可以解决它。