使用cancancan时添加没有相应型号的控制器

时间:2016-01-13 09:48:06

标签: ruby-on-rails ruby-on-rails-4 model-view-controller cancan cancancan

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

  

未初始化的常量协作者

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

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

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

非常感谢提前。

1 个答案:

答案 0 :(得分:4)

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