restful_authenticationのメール認証機能でハマった
restful_authenticationを使ってログインとメール認証機能を作ってみました。
restful_authenticationのインストールやら設定やらは以下のサイトを参照させてもらいました。
途中でつまづきながらも、なんとかメール発行まですることができていよいよテスト!
と思って動作させると…。
あれ?なぜかメール認証で届いたメールのURLにアクセスしても認証が通りません。
なんでやろーかと思って検索してみたところ、同様の現象で悩んでいる方を発見!
どうやら認証メールとDBのactivation_codeが違うみたい。
自分のものを確かめると…確かに違う!
そりゃ認証が通るわけないですな。。。
結果的に僕は以下の方法で回避しました。
app>models>user_observer.rbを開いて赤字部分を追加。
class UserObserver < ActiveRecord::Observer
def after_create(user)
user.reload
UserMailer.deliver_signup_notification(user)
enddef after_save(user)
user.reload
UserMailer.deliver_activation(user) if user.recently_activated?
end
end
再度実行してみたらOKでした。
詳しい解説はこちらのサイトの下の方に書いてありました(英語)