0

在此处配置的轨道是在UserController的观察用户注册

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 

我的行动do_registration我想用一个UserObserver而不是调用的ActionMailer在行动,所以我以观察员所著/ user_observer.rb theese行代码:

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

,但瓦特如果我注册新用户,则不发送邮件。

什么问题?

回答

1

你不必为你创造了这个与型号仅默认情况下将观察用户类写这条线observe User观察员。但是如果你想明确提到它,它应该是这样observe :user

+0

但我需要写在我的控制器的do_registration时,当我删除UserMailer.welcome ....线? – 2012-07-18 09:42:04

+0

其他一切都是正确的,只是删除该行,它应该工作。 'after_save'将会发送邮件。 – abhas 2012-07-18 09:59:41

+0

它不起作用。它添加新的用户在数据库中,但没有邮件发送 – 2012-07-18 10:05:09