0

devisegemを使用しているRails3アプリケーションへのユーザー登録時にメールを送信しようとしています。電子メールを送信しようとするたびに、次のエラーが発生します。

Devise :: RegistrationsController#create undefined method `welcome_email'for UserMailer:ClassのNoMethodError

私の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 に答える