非RESTful控制器中的Cancan授权

时间:2011-02-04 14:01:15

标签: ruby-on-rails ruby-on-rails-3 cancan

我有这样的控制器,但没有支持它的模型类。

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

1 个答案:

答案 0 :(得分:3)

我尝试按照Debugging Abilities链接进行调试,并找出问题所在。

能力是正确的,我通过以错误的顺序指定它们来做一个小错误。

对于访问此页面的其他人,如果您遇到Cancan功能无法解决的任何问题,请尝试使用上述链接进行调试。你最终会弄明白什么不起作用以及为什么。