我正在使用rails_admin,devise和cancan。
用户有很多角色。
我设置了一个管理页面,其中具有admin角色的用户可以管理用户。但是,管理员无法管理角色。
创建或编辑用户时,不会列出角色。
如何让管理员在不让他们编辑或创建角色的情况下向用户添加角色?
这是我的能力档案
class Ability
include CanCan::Ability
def initialize user
if user && user.admin?
can :access, :rails_admin
can :dashboard
cannot :manage, Role
can :manage, User
else
cannot :access, :rails_admin
end
end
end
我尝试在rails_admin配置中明确覆盖关联范围,但这根本没有帮助:
field :role do
associated_collection_scope do
Proc.new do |scope|
scope = scope
end
end
end
答案 0 :(得分:0)
我能够通过添加can :index, Role
来使其工作,但这并不是真正需要的,因为它会让角色显示在侧边栏中。
class Ability
include CanCan::Ability
def initialize user
if user && user.admin?
can :access, :rails_admin
can :dashboard
can :index, Role
can :manage, User
else
cannot :access, :rails_admin
end
end
end