我正在尝试从我的应用发送电子邮件。当我不使用观察者时,电子邮件会被发送。当我使用观察者时,我得到以下错误:
undefined local variable or method ` UserMailer' for #<UserObserver:0x7f5730c07400>
这是我的UserMailer
class UserMailer < ActionMailer::Base
default :from => "from@me.com"
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
答案 0 :(得分:3)
已在轨道4中移除观察员。
这意味着,即使您仍然可以use them with a gem,它们也已被弃用,您不应该使用它们。
它的主要原因是观察者正在使你的应用程序变得一团糟,无法为新开发人员阅读。
我建议您使用服务(请查看this post,其中提及您如何正确地重构您的AR模型),并将电子邮件发送到其中一个。
答案 1 :(得分:0)
您的application.rb文件中是否有以下行设置?
config.active_record.observers =:user_observer