首页 > 解决方案 > 如何在 Rails 5 + Cancancan 中更新用户角色

问题描述

我被困在用户角色中。我正在使用带有设计宝石的 Cancancan。如何在不从表中删除角色的情况下更新用户角色。

我正在使用这样,但这不起作用

存储在数据库 user_roles 和 Role Master 中的角色

 USERROLES = ["subscriber","user","moderator", "admin" ,"superadmin"].freeze # static for find value without call Role master

  def change_role
    if current_user.has_role?(:superadmin)
      @user_id = params[:id]
      if !params[:r_id].blank? && !params[:id].blank?
        @role_id = params[:r_id].to_i == 5 ? 4 : params[:role_id].to_i
        user = User.find(@user_id)
        user.remove_role user.roles.first.name
        user.add_role USERROLES[@role_id]
      end
    end
  end

标签: ruby-on-railsrubyrolify

解决方案


推荐阅读