使用观察器从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模型),并发送你的电子邮件在其中之一。
答
你的application.rb文件中有下面的行设置吗?
config.active_record.observers =:user_observer
+0
它在application.rb文件中设置 – user2122528 2013-04-08 12:52:35
不知道观察者被弃用。无论如何,电子邮件仍然没有观察员工作感谢这篇文章 – user2122528 2013-04-08 12:57:09