rails:1998
From: Kazuhiro Yoshida <moriq@m...>
Date: Tue, 06 Feb 2007 22:19:21 +0900
Subject: [rails:1998] Re: 継承時のbefore_filterの呼び出し順序について
moriqです。 山崎雄介 wrote: > ユーザ管理画面の表示では、最大で2段階のbefore_filterが適用されるようになっ > ています。ただし、ログインしていない状態では最初のsession_authに引っかか > るので、かならずlogin画面に飛び、もうひとつが呼ばれることはないはずです。 filterメソッドでfalseを返さないと呼ばれてしまいます。 redirect_toで実行が止まるわけではなく、また戻り値はfalseではないので。 > class ApplicationController < ActionController::Base > before_filter :session_auth, :except => [:login, :auth, :logout] > > def session_auth > request_page = request.env['REQUEST_URI'] > reset_expiration > session[:request] = request_page > unless session[:me] > self.class.logger.debug("session_auth_failure") # ここは呼ばれている。 > flash[:notice] = 'ログインして下さい。' > redirect_to :action => 'login' false > else > @me = session[:me] > end > end > end > 下位クラスのbefore_filterが先に呼ばれているんじゃないでしょうか。 before_filter (append_before_filter) は先に定義したほうが先に呼ばれますね。 後で定義するけど先に呼びたいときはprepend_before_filterを使います。 -- ML: rails@r... 使い方: http://QuickML.com/
1997 2007-02-06 13:24 [y-yamasaki@s... ] 継承時のbefore_filterの呼び出し順序について -> 1998 2007-02-06 14:19 ┗[moriq@m... ] 1999 2007-02-06 16:38 ┗[y-yamasaki@s... ]