使用观察器从Rails应用程序发送电子邮件

问题描述:

我想从我的应用程序发送电子邮件。当我不使用观察者时发送电子邮件。当我使用观察者,我收到以下错误:使用观察器从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

观察员已在轨4.
这意味着被删除,即使你仍然可以use them with a gem,它们被弃用的,你不应该使用它们。

它的主要原因是观察者正在让你的应用程序乱七八糟,以供新开发人员阅读。

我建议你使用服务(看看this post,其中提到你可以如何正确地重构你的AR模型),并发送你的电子邮件在其中之一。

+0

不知道观察者被弃用。无论如何,电子邮件仍然没有观察员工作感谢这篇文章 – user2122528 2013-04-08 12:57:09

你的application.rb文件中有下面的行设置吗?

config.active_record.observers =:user_observer

+0

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