0

devise gem을 사용중인 레일 3 애플리케이션에서 사용자 등록시 이메일을 보내려고합니다.사용자 등록시 actionmailer 이메일 보내기 devise rails 3 애플리케이션

내 애플/모델/user.rb가있다 클래스 : UserMailer에 대한 정의되지 않은 메서드`welcome_email '을 만들 궁리에

NoMethodError :: RegistrationsController # : 내가하려고 할 때마다 나는 다음과 같은 오류가 이메일을 보내 다음 코드 ... 내 애플/우편물/user_mailer.rb가 다음 코드

after_create :send_welcome_email 

    def send_welcome_email 
    UserMailer.welcome_email(self).deliver 
    end 

...

class UserMailer < ActionMailer::Base 
    default from: "[email protected]" 

    def welcome_email(user) 
    @user = user 
    @url = "http://mysite.com/login" 
    mail(:to => "#{user.email}", :subject => "Welcome to My Awesome Site") 
    end 
end 

방법 우리 lcome_email이 존재하므로 왜 오류가 발생하는지 잘 모르겠습니다. 지난 몇 시간 동안이 문제를 해결하려고 노력 중입니다.

도움을 주셔서 감사합니다. 언제나 그렇듯이 당신이 나에게 좋은 대답을 주면 나는 그것을 그렇게 받아 들일 것입니다. 알렉스

+0

UserMailer를 만든 후에 레일 앱을 다시 시작 했습니까? – kobaltz

답변

0

인스턴스 메서드는 welcome_email처럼 보입니다. 오류가 클래스 메소드 일 필요가 있다고합니다. 따라서 메서드 선언을 다음과 같이 다시 작성하십시오.

def self.welcome_email(user)

나는 그것을 해결해야한다고 생각합니다.

+0

두 번째 생각. 메일러 내에서 속성을 설정하는 것 같습니다. 따라서'send_welcome_email' 호출은 다음과 같이 바뀔 수 있습니다 : > UserMailer.new.welcome_email (self) .deliver –

관련 문제