Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails CanCan-如何设置无模式控制器?_Ruby On Rails_Ruby On Rails 3_Devise_Cancan - Fatal编程技术网

Ruby on rails CanCan-如何设置无模式控制器?

Ruby on rails CanCan-如何设置无模式控制器?,ruby-on-rails,ruby-on-rails-3,devise,cancan,Ruby On Rails,Ruby On Rails 3,Devise,Cancan,我有一个用户模型,带有一个管理布尔字段。然后我有一个管理员控制器,我想坎坎上 由于没有管理模型,如何将CanCan添加到管理控制器 我试过: class AdminController < ApplicationController load_and_authorize_resource :user load_and_authorize_resource :admin, :through => :user class Ability include CanCan::

我有一个用户模型,带有一个管理布尔字段。然后我有一个管理员控制器,我想坎坎上

由于没有管理模型,如何将CanCan添加到管理控制器

我试过:

class AdminController < ApplicationController
  load_and_authorize_resource :user
  load_and_authorize_resource :admin, :through => :user


class Ability
   include CanCan::Ability
   def initialize
         ....
         can :manage, Admin if current_user.admin == TRUE
         ....
class AdminController:user
班级能力
包括CanCan::能力
def初始化
....
can:manage,如果当前用户为Admin==TRUE,则为Admin
....
但“零访问被拒绝”的错误


想法?谢谢

您确定在您的能力课程中有权访问“当前用户”方法吗?我想你不会的

我记得在使用CanCan时,您可以在您的能力课程中使用:

def initialize(user)
    user ||= User.new #guest user.
...
end
我想用户应该是当前用户。我想这应该行得通

您还可以查看CanCan wiki的以下页面。这并不是完全相同的问题,但由于它涉及一个特殊情况(非RESTful控制器),它可能会为您提供一些关于如何做您想做的事情的提示


干杯

对不起,
==TRUE
TRUE
在你的应用程序中是常量吗?另外:对于
load\u和\u authorize\u资源
来说,
through
选项来自哪里?TRUE不是常量,它是布尔值,这是无效的吗?RE:through选项是CanCan no的一部分@真的,真的和真的都非常非常不同。