问题描述
背景
我有一个带有devise和cancancan的简单应用程序。因为我想add a little bit of custom logic to the signup process,所以我使用了devise with customised controllers,这仅仅意味着devise将users控制器(而不是devise控制器)用于devise所做的所有事情。
问题
当我将check_authorization
添加到应用程序控制器,并将skip_authorization_check
添加到所有用户(设计)控制器时,当用户尝试登录或注销时,仍然出现以下错误: / p>
问题
有人知道如何skip_authorization_check
使用这些控制器吗? (我已经在每个用户(设计)控制器中都拥有skip_authorization_check
,我认为这样做可以,所以我不确定该怎么做
解决方法
我在编写此问题的90%的过程中都找到了答案,因此想将其发布,以防将来对其他人有帮助。
答案是,只需按常规方式use the same method for skipping authorization checks on devise(即使使用定制的devise控制器),也就是将其添加到application_controller
check_authorization unless: :devise_controller?
使用此方法时,似乎不必手动向每个设备(或自定义设备)控制器添加skip_authorization_check
。