配置rails以观察用户注册

时间:2012-07-18 08:52:44

标签: ruby-on-rails ruby-on-rails-3.2 actionmailer observer-pattern

以下是我在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中,但是当我注册新用户时,没有发送邮件。

有什么问题?

1 个答案:

答案 0 :(得分:1)

您不必在观察者中编写此行observe User,因为您只使用模型名称创建此行,但默认情况下会观察用户类。但是如果你想明确地提到它,它应该是这样的observe :user