Ruby 可以在嵌套资源中授权控制器操作

Ruby 可以在嵌套资源中授权控制器操作,ruby,ruby-on-rails-3,cancan,Ruby,Ruby On Rails 3,Cancan,使用CanCan中的加载和授权资源,您可以选择通过使用:仅或:除之外的操作进行授权。i、 e.加载和授权资源:仅=>[:索引,:显示] 我想在嵌套资源中执行相同的操作,但无法使其工作 我有一个嵌套资源,如: class TasksController < ApplicationController load_and_authorize_resource :project load_and_authorize_resource :task, :through => :proje

使用CanCan中的
加载和授权资源
,您可以选择通过使用
:仅
:除
之外的操作进行授权。i、 e.
加载和授权资源:仅=>[:索引,:显示]

我想在嵌套资源中执行相同的操作,但无法使其工作

我有一个嵌套资源,如:

class TasksController < ApplicationController
  load_and_authorize_resource :project
  load_and_authorize_resource :task, :through => :project
end
class TasksController:项目
结束
并尝试对此进行限制“:click”操作:

class TasksController < ApplicationController
  load_and_authorize_resource :project
  load_and_authorize_resource :task, :through => :project, :except => :click
end
class TasksController:项目,:除=>:单击
结束
但这不起作用。您知道如何使用嵌套资源选择某些操作吗?

如图所示

要跳过嵌套控制器上操作的授权
skip\u authorize\u资源
需要按以下方式使用

class TasksController < ApplicationController
  load_and_authorize_resource :project
  load_and_authorize_resource :through => :project

  skip_authorize_resource :only => :click  
  skip_authorize_resource :project, :only => :click
end
class TasksController:项目
跳过\u授权\u资源:仅=>:单击
跳过\u授权\u资源:项目,:仅=>:单击
结束
第一个跳过授权资源跳过任务的授权检查,第二个跳过项目的授权检查。如果要跳过某个操作的所有授权检查,则这两个选项都是必需的。

如图所示

要跳过嵌套控制器上操作的授权
skip\u authorize\u资源
需要按以下方式使用

class TasksController < ApplicationController
  load_and_authorize_resource :project
  load_and_authorize_resource :through => :project

  skip_authorize_resource :only => :click  
  skip_authorize_resource :project, :only => :click
end
class TasksController:项目
跳过\u授权\u资源:仅=>:单击
跳过\u授权\u资源:项目,:仅=>:单击
结束
第一个跳过授权资源跳过任务的授权检查,第二个跳过项目的授权检查。如果要跳过某个操作的所有授权检查,则这两个选项都是必需的