在使用 cancancan 时添加没有对应模型的控制器

Adding a Controller without corresponding model while using cancancan

我添加了一个控制器 collaborators 来管理 UsersCompanies 之间的特定类型的连接关联。问题是每当我从 collaborators 加载任何内容时,我都会收到错误

uninitialized constant Collaborator

据我了解,这是因为没有型号Collaborator,而我正在使用cancancan进行授权。从旧的 cancan(注意不是 cancancan)documentation,我已经能够收集到没有相应模型的控制器需要为他们手动授权模型,例如:load_and_authorize_resource :the_model, :parent => false

如果我在 application.rb 控制器中禁用 load_and_authorize_resource,这似乎有效。

所以我的问题是:授权没有相应模型的控制器的最佳方法是什么?我可以在我的应用程序控制器中继续 load_and_authorize_resource 吗?

非常感谢。

LINK 会有所帮助。

来自link,我引用,

class ToolsController < ApplicationController
  authorize_resource :class => false
  def show
    # automatically calls authorize!(:show, :tool)
  end
end

在你的ability.rb中:

class Ability
  include CanCan::Ability

  def initialize(user)
    can :show, :tool
  end
end