我的 Rails 应用程序中有 Devise 和 CanCan。我认为默认情况下,如果用户尝试登录到未经授权的页面,它应该将用户重定向到登录页面。但不知何故,它不适用于我的应用程序。
如果不是全局的(即,对于所有控制器/方法),我如何实施检查用户是否被授权并重定向到家?
更新:更新 jquery 后,我的 CanCan 似乎不再工作了。
谢谢你。
我的 Rails 应用程序中有 Devise 和 CanCan。我认为默认情况下,如果用户尝试登录到未经授权的页面,它应该将用户重定向到登录页面。但不知何故,它不适用于我的应用程序。
如果不是全局的(即,对于所有控制器/方法),我如何实施检查用户是否被授权并重定向到家?
更新:更新 jquery 后,我的 CanCan 似乎不再工作了。
谢谢你。
它应该工作,向我们展示您的routes.rb
文件。要检查只需before_filter :authenticate_member!
在控制器类的顶部添加。
这就是我使用自己的自定义身份验证(可能与设计类似)的方式(在 routes.rb 中):
root :to => '<controller#action_needing_authorization>', :constraints => lambda{|req| !req.session[:user_id].blank? }
root :to => 'sessions#new'
这是有效的,因为路由按照它们指定的顺序匹配。