新手问题 开发环境和生产环境的 Cancancan 权限竟然不一样,求解

powermedia · November 16, 2017 · 1039 hits

问题描述

自己的一个 Rails 项目,权限控制使用 cancancan 2.0

  • 在开发环境下非管理员用户创建数据时正常
  • 在生产环境下非管理员用户创建数据时权限失败。
  • 但并不是所有的创建权限有问题,就是某一个表权限出现这种情况

代码如下

class Ability
    include CanCan::Ability

    attr_reader :user

    def initialize(u)
      @user = u
      if @user.blank?
        roles_for_anonymous
      elsif @user.roles?(:admin)
        can :manage, :all
      elsif @user.roles?(:member)
        roles_for_member
      else
        roles_for_anonymous
      end
    end
    protected
    def roles_for_member
      can :create, Project
      can [:update,:destroy], Project, user_id: user.id
    end
    ## ...
end
No Reply at the moment.
You need to Sign in before reply, if you don't have an account, please Sign up first.