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)
end

def after_save(user)
user.reload
UserMailer.deliver_activation(user) if user.recently_activated?
end
end


再度実行してみたらOKでした。


詳しい解説はこちらのサイトの下の方に書いてありました(英語)