SuperAPI AI 工具集

action-policy-coder

通用与其它

查看项目

更新于 10-16 06:24

技能介绍

用途:在 Ruby on Rails 应用中基于 ActionPolicy 实现授权,编写 policy 类与关系作用域,并与 GraphQL、ActionCable 集成。资料称其比 Pundit 更适合可组合的授权逻辑。

主要能力:创建带规则与继承的 policy 类;在控制器中使用 authorize! 与 allowed_to?;用 authorized_scope 过滤集合;配置缓存以优化性能;通过 I18n 提供本地化失败信息;使用 ActionPolicy RSpec matcher 编写测试;集成 GraphQL 与 ActionCable。

使用方式:在 Gemfile 添加 gem "action_policy",GraphQL 集成再加 gem "action_policy-graphql"。运行生成命令:bin/rails generate action_policy:install 与 bin/rails generate action_policy:policy Post。可定义 ApplicationPolicy 基类并通过 alias_rule、pre_check 复用规则;用 relation_scope 定义过滤作用域,控制器中以 authorized_scope(Post.all) 或指定 as: 调用。缓存可在 policy 方法内使用 cache 块,并在初始化器中配置 config.cache_store。I18n 消息放在 config/locales/action_policy.en.yml,可在控制器 rescue_from ActionPolicy::Unauthorized 读取 exception.result.message。

适用场景:Rails 控制器授权、集合过滤、条件渲染、GraphQL mutation 预授权、ActionCable 授权及配套测试。

限制:资料未提供具体版本要求、定价、性能数据或与其他授权库的完整对比;实际行为取决于项目配置,需自行验证。