在 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 的页面重定向)。
我意识到这样做的一种方法是在设置任何其他 before_filters 之前在所有控制器上运行 login_required 作为 before_filter,然后排除某些控制器模型,但我想知道是否有一种方法可以做到这一点而不必更改我的所有控制器.