2013-07-26 42 views
0

我正在使用rails_admin,devise和cancan。无法选择has_many的选项

用户有很多角色。

我有一个管理员页面设置用户具有管理员角色可以管理用户。但是,管理员无法管理角色。

创建或编辑用户时,不会列出角色。

如何允许管理员向用户添加角色而不让他们编辑或创建角色?

这是我的能力文件

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

我能够使它通过添加​​3210工作,但这不是真的需要,因为它使角色显示在边栏中。

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 
+0

将角色添加到'rails_admin.rb'中的'config.excluded_models'隐藏不需要的索引页面和导航项目。 – BM5k