2

私はdeviseとactionmailerを使用しています。ユーザーがアプリで自分のアカウントを確認した後、アクションメーラー メソッドをトリガーする方法を考えています。このアクションメーラー メソッドはウェルカム メッセージにすぎません。

また、名前や電子メールなど、同じユーザー情報を取得するにはどうすればよいですか? やってみresourceました。しかし、うまくいきませんでした。

4

5 に答える 5

2

これは実際には比較的簡単な作業です。User クラスのObserverを作成するだけです。

class UserObserver < ActiveRecord::Observer
    def after_save(user)            
        if user.confirmed_at_changed?
            #send email
        end
    end
end
于 2013-05-24T13:33:09.687 に答える
0

after_save を使用すると、アプリケーションが実行され、ユーザーが今確認されたかどうかの状態がチェックされます。それは不必要な遅延につながります。

次のコードを使用して、devise が提供するデフォルトの確認機能をオーバーライドすることをお勧めします。

class User < ActiveRecord::Base
  devise :invitable, :database_authenticatable, :registerable, :recoverable, 
         :rememberable, :confirmable, :validatable, :encryptable

  # Override devise confirm! message
  def confirm!
    welcome_email
    super
  end

  # ...

private

  def welcome_email
    UserMailer.welcome_message(self).deliver
  end

end

http://csnipp.com/s/507/-Send-welcome-mail-after-confirmation-devise

于 2014-07-11T20:20:44.680 に答える