0

我正在尝试在使用设计 gem 的 rails 3 应用程序中用户注册后发送电子邮件。每次我尝试发送电子邮件时,都会收到以下错误:

设计中的 NoMethodError::RegistrationsController#create undefined method `welcome_email' for UserMailer:Class

我的 app/model/user.rb 有以下代码...

after_create :send_welcome_email

  def send_welcome_email
    UserMailer.welcome_email(self).deliver
  end

我的 app/mailers/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 存在,所以我不确定为什么会出现错误。在过去的几个小时里一直试图解决这个问题。

提前感谢您的帮助!!一如既往,如果你给我一个好的答案,我会接受它。亚历克斯

4

1 回答 1

0

看起来welcome_email是一个实例方法。看起来错误表明它需要是一个类方法。所以尝试将方法声明重写为:

def self.welcome_email(用户)

我想这应该解决它。

于 2013-02-03T05:32:07.350 回答