为什么cancancan方法可以在视图中返回错误的值,而在控制器中却可以返回正确的值?

问题描述

我拥有cancancan能力can(:manage,User,id: user.id)

用户打开自己的配置文件时,然后UsersController#show中的can? :update,@user返回正确,但在显示视图中返回false。

有人知道导致这种不一致的原因吗?

cancancan 3.1,rails 6.0.3.4

解决方法

好,我解决了。 问题是我在装饰器上调用了can?,但是它不起作用。 can? :update,@user.object正常。