application_controller.rbには、次のものがあります。
before_filter :get_events
before_filter :get_sitemap
def login_required
return true if session[:user]
# If we get to this point, I want to avoid running get_events and get_sitemap
flash[:warning] = 'Please login to continue'
redirect_to login_users_url
return false
end
そして、他のコントローラーでは、例えば:
before_filter :login_required, :except => [:show]
したがって、基本的に、ユーザーがログインする必要がある場合(つまり、通常get_eventsとget_sitemapが必要なページからリダイレクトされる場合)にデータベースにアクセスしたくない場合を除いて、すべてのページのデータベースにアクセスするメソッドを実行しています。
これを行う1つの方法は、他のbefore_filtersが設定される前に、すべてのコントローラーでbefore_filterとしてlogin_requiredを実行し、特定のコントローラーモデルを除外することですが、すべてのコントローラーを変更せずに実行する方法があるかどうかを知りたいです。 。