小编Dav*_*kus的帖子

Rails可以扫描嵌套资源

我有项目资源,它嵌套在用户资源中.

我的Cancan Ability课程是:

class Ability
  include CanCan::Ability
  def initialize(user)
    #everyone
    can :read, Project

    if user.blank? 
      # guest user
      ...
    else
      #every signed in user

      case user.role
        when User::ROLES[:admin] 
          #only admin role user
          can :manage, :all

        when User::ROLES[:member] 
          #only member role user
          can :update, User, :id => user.id
          can [:create, :update, :destroy], Project, :user_id => user.id
        else

      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

和项目控制器:

class ProjectsController < ApplicationController
  load_and_authorize_resource :user
  load_and_authorize_resource :projects, :through => :user, :shallow => true
  ...
end
Run Code Online (Sandbox Code Playgroud)

我有几个问题:

是否有可能拒绝:读取用户并允许:阅读项目,以便每个人都可以访问/ users/10 …

authorization ruby-on-rails cancan

7
推荐指数
1
解决办法
4296
查看次数

标签 统计

authorization ×1

cancan ×1

ruby-on-rails ×1