Ruby on rails 设计+;Cancan可以在生产中导致重定向循环,但在开发中不会

Ruby on rails 设计+;Cancan可以在生产中导致重定向循环,但在开发中不会,ruby-on-rails,devise,cancan,cancancan,Ruby On Rails,Devise,Cancan,Cancancan,我已经在rails4应用程序中使用了相当长的一段时间了。现在我需要添加不同的角色,并决定使用Cancan来完成这一任务 在开发过程中一切都很好,但当我将代码部署到生产环境中时,我得到的只是无限重定向循环。如果我删除cookies,我可以获得登录页面,但登录在同一个循环中结束 我的根目录重定向到控制器索引操作 我基本上只有一个具有任何业务逻辑的控制器,我的根目录重定向到此控制器中的索引操作 来自控制器的相关线路 load_and_authorize_resource skip_authorizat

我已经在rails4应用程序中使用了相当长的一段时间了。现在我需要添加不同的角色,并决定使用Cancan来完成这一任务

在开发过程中一切都很好,但当我将代码部署到生产环境中时,我得到的只是无限重定向循环。如果我删除cookies,我可以获得登录页面,但登录在同一个循环中结束

我的根目录重定向到控制器索引操作

我基本上只有一个具有任何业务逻辑的控制器,我的根目录重定向到此控制器中的索引操作

来自控制器的相关线路

load_and_authorize_resource
skip_authorization_check :only => [:index]
但我也试过:

before_action :authenticate_user!
此外,还附加了这两个(单独)

在ApplicationController中,我将所有这两个都放在一起并分别放在一起

:except => [:index]
:unless => :devise_controller?
check_authorization :unless => :devise_controller?
before_filter :authenticate_user!,  :unless => :devise_controller?
这两个我都试过了,不管有没有这个声明

我试着严格遵循相关的维基,但似乎无法在生产中使用。如果有什么不同,我会在生产中使用Nginx/乘客组合

在写这篇文章时,我意识到我一直在使用Cancan1.6,但我还没有尝试过Cancancan。下一步我会试一试

感谢所有的帮助


更新:我用Cancancan 1.9.2(而不是Cancan 1.6)进行了尝试,结果类似。我暂时禁用它,直到我找到解决方案或替代授权gem。

次要搁置-新的gem CanCanCan(维护),可用于替换不再维护的CanCan-PierreYes在写我的问题时注意到。今晚晚些时候我会试试看这是否会有所不同。