2 つのコントローラーに使用する一般的なフィルターがいくつかあります。フィルターはまったく同じですが、両方のコントローラーでスキップ条件が異なります。
u_controller で:
before_filter :require_login,:get_notification,:get_credits
skip_before_filter :require_login , :only => [:index,:registration,:login,:oauthlogin,
:forgotpassword,:invite_mail,:newpassword,
:changepassword,:invite,:verify,:terms,:privacy,:about]
skip_before_filter :get_notification , :only => [:registration,:login,:oauthlogin,
:forgotpassword,:invite_mail,:newpassword,
:changepassword,:invite,:verify]
skip_before_filter :get_credits , :only => [:registration,:login,:oauthlogin,
:forgotpassword,:invite_mail,:newpassword,
:changepassword,:invite,:verify,:terms,:privacy,:about]
q_controller で:
before_filter :require_login,:get_notification,:get_credits,:require_auth
skip_before_filter :get_notification,:get_credits,:require_auth,
:only => [:topic_suggest,:upload,:new_question,:qdb,:post_new_question,:evaluate_answer,:image]
skip_before_filter :require_auth, :only => [:add]
このようなシナリオで、次の問題を解決するためのベスト プラクティスは何でしょうか。
- 2 つのコントローラーでフィルターの重複宣言を避ける
- の代わりに、よりクリーンなコードを使用してください
skip_before_filter
。