在使用 cancancan 时添加没有对应模型的控制器
Adding a Controller without corresponding model while using cancancan
我添加了一个控制器 collaborators
来管理 Users
和 Companies
之间的特定类型的连接关联。问题是每当我从 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
我添加了一个控制器 collaborators
来管理 Users
和 Companies
之间的特定类型的连接关联。问题是每当我从 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