我的Rails应用程序中有Devise和CanCan。我认为默认情况下,如果用户尝试登录到未经授权的页面,它应该将用户重定向到登录页面。但不知何故,它不适用于我的应用程序。如果未在Rails中授权,则重定向到登录页面
如何实现一个检查,如果用户被授权并重定向到家庭(如果不是全局的话)(即,对于所有的控制器/方法)?
更新:似乎我的CanCan在更新jquery后不工作了。
谢谢。
我的Rails应用程序中有Devise和CanCan。我认为默认情况下,如果用户尝试登录到未经授权的页面,它应该将用户重定向到登录页面。但不知何故,它不适用于我的应用程序。如果未在Rails中授权,则重定向到登录页面
如何实现一个检查,如果用户被授权并重定向到家庭(如果不是全局的话)(即,对于所有的控制器/方法)?
更新:似乎我的CanCan在更新jquery后不工作了。
谢谢。
它应该工作,告诉我们您的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'
这工作,因为路由在他们指定的顺序匹配。