我有这样的控制器,但没有支持它的模型类。
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 ,并说它可以传递一个符号作为第二个参数进行授权!并且可以。
它不必是模型类或实例。
通常,第一个参数是试图执行的“动作”
和
第二个参数是正在执行的“主题”。它可以是任何东西。
我也做了同样的事情,但仍然没有用。
注意:我也尝试过反过来
authorize_resource :class => false
如在维基中所说的那样,但这也行不通。
如果有任何帮助,我的控制器没有任何操作,如show,new,create或任何其他基本的CRUD操作。
康康:1.4.1
答案 0 :(得分:3)
我尝试按照Debugging Abilities链接进行调试,并找出问题所在。
能力是正确的,我通过以错误的顺序指定它们来做一个小错误。
对于访问此页面的其他人,如果您遇到Cancan功能无法解决的任何问题,请尝试使用上述链接进行调试。你最终会弄明白什么不起作用以及为什么。