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

powermedia · 2017年11月16日 · 1046 次阅读

问题描述

自己的一个 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
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请 注册新账号