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