2013-04-08 71 views
2

我想從我的應用程序發送電子郵件。當我不使用觀察者時發送電子郵件。當我使用觀察者,我收到以下錯誤:使用觀察器從Rails應用程序發送電子郵件

undefined local variable or method ` UserMailer' for #<UserObserver:0x7f5730c07400> 

這裏是我的UserMailer

class UserMailer < ActionMailer::Base 
    default :from => "[email protected]"  
    def welcome_email(user) 
    @user = user 
    @url = "website.com/home" 
    mail(:to => user.email, :subject => "Welcome to My Awesome Site") 
    end 
end 

觀察員代碼

require "#{Rails.root}/app/mailers/user_mailer.rb" 

class UserObserver < ActiveRecord::Observer 
    observe :user 

    def after_save(user) 
     UserMailer.welcome_email(user).deliver 
    end 

end 

任何幫助將不勝感激。我在軌道上是紅寶石。 TIA

回答

3

觀察員已在軌4.
這意味着被刪除,即使你仍然可以use them with a gem,它們被棄用的,你不應該使用它們。

它的主要原因是觀察者正在讓你的應用程序亂七八糟,以供新開發人員閱讀。

我建議你使用服務(看看this post,其中提到你可以如何正確地重構你的AR模型),併發送你的電子郵件在其中之一。

+0

不知道觀察者被棄用。無論如何,電子郵件仍然沒有觀察員工作感謝這篇文章 – user2122528 2013-04-08 12:57:09

0

你的application.rb文件中有下面的行設置嗎?

config.active_record.observers =:user_observer

+0

它在application.rb文件中設置 – user2122528 2013-04-08 12:52:35

相關問題