4

除了自定义操作之外,我的一切都可以正常工作。我有一个没有正确保护的 upload_photos 操作。我在ability.rb 文件中添加了一个非常基本的测试操作,如下所示:

can :test, User, :id => user.id

但由于某种原因,它总是评估为真,所以我将其更改为以下

can :test, User, :email => 'a@a.com'

并且它总是评估为真。

有人知道为什么 cancan 在这里不能正常工作吗?

我的用户控制器顶部有以下内容:

load_and_authorize_resource

提前致谢。

解决方案:

Cancan 的 load_and_authorize_resource 会干扰自定义操作,因此我们需要执行类似的操作

load_and_authorize_resource :except => [:test]

然后在测试动作中:

authorize! :test, @user
4

0 回答 0