on Rails : リダイレクト
久しぶりにRide on Railsを読み進めてます.今,LoginEngineのトコ.いやはや,素敵すぎるぜplugin.CPANってこんな気分なのかな.
で,個人的に感動したのが,リダイレクト.LoginEngineを入れ,本に書いてあることを全部やって,早速ttp://localhost:3000/books/に繋いでみました.そうすると,
before_filter :login_required
としてあるので,もちろんttp://localhost:3000/user/loginにリダイレクトされます.そこからuser/singupに移ってサインアップを行いログインすると,ちゃんとbooks/listにリダイレクトされたのに感動したわけですよ.「いやーこれどういう処理してんだよーまさかリダイレクト先までpluginインストールしただけで設定されるのかよーんなわけねーかー」とか思いながら,vendor/plugins/login_engine/app/controllers/user_controller.rbのlogin部分を読んでみる.と,こんな風に書いてある.
redirect_to_stored_or_default :action => 'home'
なんかこんなの見たことがある,そうだlogin_generatorのテストの時,「んなメソッドネーヨ!」って怒られたヤツだ.それはどんなのだったかというと,
redirect_back_ro_default
だった.なんか似たような意味なんだろうか?ググってもわからないときはどうすれば良いんだろう.そうだ,gem_serverに聞いてみよう.・・・教えてくれないようです.しかし,コレを書いた人は何かしらのドキュメントで持ってこのメソッドの意味を理解し使っていると信じたい.んじゃ英語か!
んぅん,Googleさんはホントなんでも知っている.
http://rails-engines.rubyforge.org/rdoc/login_engine/classes/LoginEngine/AuthenticatedSystem.html#M000044
なんだよ!結局LoginEngine独自のメソッドかよ!ソース短けー!スゲー!
つーか,そもそも:login_required自体不思議な感じがしたのさ.うわーソース読むの楽しい.LoginEngine書いた人,スゴいなぁ.