我有一个管理员控制器,我希望只有被定义为管理员的用户才能访问该控制器。
我的权限类:
class Ability
include CanCan::Ability
def initialize(user)
if user.admin?
can :manage, :all
else
can :read, :all
end
end
end
我的管理员控制器:
class AdminController < ApplicationController
load_and_authorize_resource
def index
end
def users_list
end
end
当我尝试访问/admin/users_list
时(使用管理员用户或非管理员用户),我会收到以下错误:未初始化常数Admin
我做错了什么?这是限制控制器访问的正确方式吗?
reports_controller.rb
中的相同操作build
,具有特定的报告名称。我正在尝试像这样定义权限:can :read, :reports, name: ['Orders', 'Payments']
,然后检查权限:if can? :read, :reports, name: 'Orders'
但是出现了错误undefined method 'name' for :reports:Symbol
。你有什么想法吗? - Andrey