Gem Rails WEB/API 配置 Pundit 的问题?

joezhang · 2015年10月09日 · 最后由 joezhang 回复于 2015年10月10日 · 2607 次阅读

练习一个 WEB/API 应用,试用 Pandit 做权限管理,请问为什么/controller/api/v1/users_controller.rb 和/controller/users_controller.rb 都指向同一个/policies/user_policy.rb 文件?怎么才能设置指向不同的文件?谢谢。 /controller/api/v1/base_controller.rb

class Api::V1:BaseController < ApplicationController
  include Pundit
......
end

/controller/api/v1/users_controller.rb

class Api::V1:UsersController < BaseController
  def index
    @users = User.all
    authorize @users
  end
end

/controller/application_controller.rb

class ApplicationController < ApplicationController::Base
  include Pundit
......
end

/controller/users_controller.rb

class UsersController < ApplicationController
  def index
    @users = User.all
    authorize @users
  end
end

/policies/user_policy.rb

class UserPolicy < ApplicationPolicy
  class Scope <Scope
    def resolve
  end
  def index? true end
end

网上查到的一些回复,都没有正式的解决办法,好像最简单的做法是在 controller 里面使用不同的名称,比如 index 和 index_api. 不知道是不是好办法。 http://stackoverflow.com/questions/21255020/using-pundit-with-namespace https://github.com/elabs/pundit/issues/178

需要 登录 后方可回复, 如果你还没有账号请 注册新账号