以下是我在UserController中的操作do_registration
def do_registration
@user = User.new(params[:user])
respond_to do |format|
if @user.save
UserMailer.welcome_email(@user).deliver
format.html { render action: "do_registration" }
else
format.html { render action: "registration" }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
我想使用UserObserver代替在操作中调用ActionMailer,所以我在观察者/ user_observer.rb中写了一行代码:
class UserObserver < ActiveRecord::Observer
observe User
def after_save(user)
UserMailer.welcome_email(@user).deliver
end
end
我添加了
config.active_record.observers = :user_observer
在我的environment.rb中,但是当我注册新用户时,没有发送邮件。
有什么问题?
答案 0 :(得分:1)
您不必在观察者中编写此行observe User
,因为您只使用模型名称创建此行,但默认情况下会观察用户类。但是如果你想明确地提到它,它应该是这样的observe :user
。