3

我已经让 Devise 在我的 rails4 应用程序中工作了很长一段时间。现在我需要添加不同的角色决定使用 Cancan 来完成此任务。

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

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

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

来自控制器的相关线路。

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)尝试了这个,结果相似。在找到解决方案或替代授权宝石之前,我暂时禁用了它。

4

0 回答 0