Devise + Cancan会导致生产中的重定向循环,但不会导致开发中的重定向循环

时间:2014-09-07 20:57:30

标签: ruby-on-rails devise cancan cancancan

我已经让Devise在我的rails4应用程序中工作了很长时间。现在我需要添加不同的角色,决定使用Cancan来实现这一目标。

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

我的root重定向到控制器索引操作。

我基本上只有一个带有任何业务逻辑的控制器,我的root重定向到该控制器中的索引操作。

来自控制器的相关行。

load_and_authorize_resource
skip_authorization_check :only => [:index]

但我也试过这个:

before_action :authenticate_user!

此外,之前附加了这两个(单独)

:except => [:index]
:unless => :devise_controller?

在ApplicationController中,我将所有这些组合在一起并单独使用

check_authorization :unless => :devise_controller?
before_filter :authenticate_user!,  :unless => :devise_controller?

除非声明,否则我已尝试过这两种情况。

我尝试跟随相关的wiki到这封信,但似乎无法在生产中使用它。如果它有所不同,我在生产中使用Nginx / Passenger组合。

写这篇文章的时候,我意识到我一直在使用Cancan 1.6,但我还没有尝试过Cancancan。接下来就试试吧。

所有帮助都是适用的。

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

0 个答案:

没有答案