SSブログ

Restful Authenticationプラグイン6 - お知らせメールの重複。 [プログラミング]

前回、Restful Authenticationでの、アクティベートのお知らせメールがログインする度に、メールを出してしまう癖を発見した。とりあえず、一番最初から、ミニマム設定でプロジェクトを作って、検証してみたいと思う。

rails -d mysql mailtest
cd mailtest
ruby script/plugin install git://github.com/technoweenie/restful-authentication.git
ruby script/generate authenticated user sessions --include-activation
rake db:create:all
rake db:migrate
ruby script/server



config/environment.rbに追加。

 config.active_record.observers = :user_observer


config/environment.rbに、ActionMailerの設定。

  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    :address => 'smtp.mail.yahoo.co.jp',
    :port => 587,
    :authentication => :login,
    :user_name => 'username',
    :password => 'password'
  }



config/routes.rbに追加。

 map.activate '/activate/:activation_code', :controller => 'users', :action => 'activate', :activation_code => nil


config/environments/development.rbに追加。

 config.action_mailer.raise_delivery_errors = true


app/models/user_mailer.rbの、@fromの部分を、<メールアドレス>でネスト。

 @from = "<hogehoge@yahoo.co.jp>"

app/models/user_mailer.rbのYOURSITEの部分を'localhost:3000'に変更。



こう全部いっぺんに見ると、そんなにお手軽にできたわけじゃないのね。そうして新しく作った雛形は、やはりlogin時にアクティベーションが出来ましたメールが送られてきてしまう。何が悪いのだろう。これこそAASMを入れないと出てくるバグか? とりあえず、どこでメールが送られてくるのかをソースを見てみたい。まずは/loginからどう飛んでいるのか把握する。

/loginは、config/routes.rbに書いてあるのを見ると、「Sessions#new」に行くと書かれている。何もしてないので、new.erb.htmlに移動する。app/views/sessions/new.html.erbで、テキストボックスの情報を持ってどこかに行くんだけど、いまいち分からない。ログを見ると、Sessions#createに飛んでいるらしい。よくよく見てみると、セッションがない事がおかしいのかもしれません。

AASMがないから挙動がおかしいかもと、毎回言ってる気がするんですが、今回はその点が濃厚な気がします。クラス名からしてSessionsControllerですからねぇ。セッションが切れてたら、アクティベーションがされたっていう判断はおかしいし、やはり何でメールを出しているのだか意味不明。なので、次回はAASMを入れてやってみようかと思います。



AuthenticationをAuthentificationとしばらく思っていて、ありゃ全部間違ってると思ったら、Authentificationじゃなかったらしい。fiが入ってるかどうかなんだけど、どっちも言葉としてあるんだよねぇ。こういうのはtypoっぽくって気になっちゃう。ただ、それだけ…。

タグ:Ruby Rails2
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。