我有一个这样的 Controller ,但没有支持它的模型类。
class UserInviteController < ApplicationController
def process_email
authorize! :process_email, :abc
...
method body
...
end
end
在我的能力课上,我有
can :process_email, :abc if user.role == 1
我正在关注维基 Non RESTful Controllers authorization by Cancan 它说你可以 传递一个符号作为第二个参数来授权!并且可以。
它不一定是模型类或实例。
通常第一个参数是试图执行的“ Action ”
和
第二个参数是正在执行操作的“主题”。它可以是任何东西。
我也这样做了,还是不行。
注意:我也尝试过反过来做
authorize_resource :class => false
如 wiki 中所说,但这也行不通。
如果它有任何帮助,我的 Controller 没有任何操作,如显示、新建、创建或任何其他基本的 CRUD 操作。
康康:1.4.1
最佳答案
我尝试通过链接 Debugging Abilities 进行调试并找出问题所在。
能力是正确的,我按错误的顺序指定了一个小错误。
对于访问此页面的其他人,如果您遇到 Cancan 功能无法正常工作的任何问题,请尝试使用上面的链接进行调试。您最终会弄清楚什么不起作用以及原因。
关于ruby-on-rails - 非 RESTful Controller 中的 Cancan 授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4898787/