用途:为 Rails 应用(配合 PostgreSQL)编写高效、正确的 ActiveRecord 查询提供系统指导,适用于复杂查询编写、模型关联设计、数据库迁移、查询性能优化、N+1 调试、GROUP BY 操作以及作用域与查询对象实现。
主要能力:
- 模型结构:给出标准模型模板,包含常量、关联、校验、作用域、回调、类方法与实例方法。
- 关联模式:一对一/多、多对多(through 连接表)、多态关联,以及外键、可选关联、counter_cache、dependent 选项、带作用域关联、touch 等配置。
- 查询模式:find/find_by/where/order/limit/offset/distinct 等基础查询;用 includes、preload、eager_load、joins 避免 N+1,并说明各自加载策略差异。
- GROUP BY:强调 PostgreSQL 中 SELECT 的非聚合列必须出现在 GROUP BY,给出正确与错误示例,并说明 includes 与 group 不能混用。
- 子查询与原生 SQL:子查询用于 WHERE,原生 SQL 需参数化或命名绑定以保证安全。
- 作用域与查询对象:简单、带参数、可链式作用域,以及封装复杂条件的 Query Object。
- 迁移模式:建表、索引、并发加索引、安全删列、JSONB 列与 GIN 索引。
- 性能优化:find_each/in_batches 批处理、只选必要列、pluck、counter cache、exists? 优于 any?/present?、explain/analyze 分析。
- 调试:开启查询日志、verbose_query_logs、bullet gem 检测 N+1。
- Rails 7.x/8.x 新特性:复合主键、ActiveRecord::Encryption、多数据库配置、水平分片、枚举与 i18n。
使用方式:作为技能参考,在编写查询、设计关联或迁移时按对应章节查阅;示例代码可直接参考其模式。
适用场景:Rails 企业级开发中的查询优化、数据建模与迁移设计。
限制:资料未提供安装命令、收费信息、平台支持范围及具体效果数据;部分示例(如枚举 i18n)内容不完整。