3

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

class UserInviteController < ApplicationController  
  def process_email  
     authorize! :process_email, :abc  
     ...
     method body
     ...
  end
end

在我的能力课上,我有

can :process_email, :abc if user.role == 1

我正在关注Cancan 的 wiki Non RESTful Controllers 授权,它说您可以将符号作为第二个参数传递给双方授权!并能。

它不必是模型类或实例。

通常,第一个参数是尝试执行的“动作”

第二个参数是正在执行动作的“主题”。它可以是任何东西。

我也做了同样的事情,但还是不行。
注意:我也试过反过来做

authorize_resource :class => false

正如wiki中所说,但这也行不通。

如果有任何帮助,我的控制器没有任何操作,如显示、新建、创建或任何其他基本 CRUD 操作。
康康:1.4.1

4

1 回答 1

4

我尝试按照链接调试能力进行调试并找出问题所在。

能力是正确的,我以错误的顺序指定它们犯了一个小错误。

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

于 2011-02-04T19:18:43.790 回答