0

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

问题是什么?

4

1 回答 1

1

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

于 2012-07-18T09:35:07.230 回答