【发布时间】:2017-08-19 06:35:39
【问题描述】:
我有一个只有超级用户或管理员才能访问的项目政策。
现在看起来像这样:
class ProjectPolicy < ApplicationPolicy
def index?
super_or_admin?
end
def new?
super_or_admin?
end
def create?
super_or_admin?
end
def update?
super_or_admin?
end
def show?
super_or_admin?
end
def super_or_admin?
user.role.name == 'superadmin' or user.role.name == 'admin'
end
end
是否可以让权威人士自动将super_or_admin? 应用于所有路由,而不是手动定义每个路由?
【问题讨论】:
-
不确定 Pundit,但如果所有这些方法都在做只是调用
super_or_admin?你可以给它们都取别名:alias :index? :super_or_admin?并以这种方式减少一些代码
标签: ruby-on-rails pundit