SuperAPI AI 工具集

rails-query-object

数据与分析

查看项目

更新于 10-15 20:34

技能介绍

用途:在 Rails 项目中按 TDD 流程创建查询对象(Query Object),把复杂数据库查询从模型或控制器中抽离出来,便于复用与测试。

主要能力:提供查询对象与 scope 的选用规则——单行、无上下文的 WHERE 用模型 scope;需要构造参数、多表 join 或返回计算数据时用查询对象。约定查询对象通过构造函数接收上下文(user: 或 account:),返回可链式的 ActiveRecord::Relation 或聚合用的 Hash,主操作放在 call 方法中,并支持按 account 的多租户隔离。

使用方式:先写失败测试(RED),运行 bin/rails test test/queries/xxx_test.rb 确认失败;再在 app/queries/ 实现查询对象,再次运行测试确认通过(GREEN)。文档给出简单过滤、聚合(多方法)、分组三类模式,以及控制器中的调用示例和 app/queries、test/queries 的目录结构。

适用场景:多表 join 带条件、仪表盘聚合、报表生成、需要构造参数的查询、跨控制器复用。

限制:资料未提供安装命令、版本要求、收费或平台信息;复杂查询建议用 .includes() 避免 N+1,并保持数据库无关(不使用 PostgreSQL 专有 SQL)。