module ActionPolicy::Policy::PreCheck
Adds callback-style checks to policies to extract common checks from rules.
class ApplicationPolicy < ActionPolicy::Base authorize :user pre_check :allow_admins private # Allow every action for admins def allow_admins allow! if user.admin? end end
You can specify conditional pre-checks (through `except` / `only`) options and skip already defined pre-checks if necessary.
class UserPolicy < ApplicationPolicy skip_pre_check :allow_admins, only: :destroy? def destroy? user.admin? && !record.admin? end end