2017-07-18 59 views
0

我提前为我的英语道歉和知识红宝石:) 我做管理面板与RailsAdmin,认证与设计,与CanCanCan授权,所以,我对用户提供三种布尔字段:RailsAdmin +设计+ CanCanCan作用不无工作:管理:所有

add_column :users, :superadmin_role, :boolean, default: false 
enter code hereadd_column :users, :manager_role, :boolean, default: 

所以,在ability.rb我有这样的:

class Ability 

    include CanCan::Ability 

    def initialize(user) 
    user ||= User.new # guest user (not logged in) 
    can :access, :dashboard # allow access to dashboard 
    can :access, :rails_admin # access Rails Admin for Admin-users 

    if user.superadmin_role? 
     can :manage, :all 
    end # role works correct 

    if user.manager_role? 
     can :read, :all 
    end #role works incorrect 

    end 
end 

SUPERADMIN_ROLE工作正确,并允许进入到RailsAdmin等,但MANAGER_ROLE是不工作 - 当用户尝试在仪表盘进入,有一个访问被拒绝错误消息显示:

Dashboard Access Denied Error

如何为manager_role访问仪表板和RailsAdmin界面 - 已经打破了整个大脑。

我会很乐意帮忙(准备好代码,链接@where阅读和等)和建设性的批评

回答