我添加了一个控制器collaborators
来管理Users
和Companies
之间特定类型的加入关联。问题是每当我从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
吗?
非常感谢提前。
答案 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