SuperAPI AI 工具集

ruby-on-rails

编程与开发

查看项目

更新于 10-15 20:31

技能介绍

用途:在创建或审查 Ruby on Rails 8.1 应用时提供约定与规范,遵循“约定优于配置”。新代码在项目允许时使用 Rails 8.1 + Ruby 3.4;保留既有 Rails 7.x,不做顺带升级。纯语言问题使用 ruby 技能。

主要能力与范围:Rails 8.1 负责路由、MVC 与生成器;Active Record 负责持久化与迁移;Propshaft 为 8 默认资源管线;Hotwire(Turbo + Stimulus)用于 HTML 应用;Solid Queue/Cache/Cable 提供基于数据库的任务、缓存与发布订阅;Kamal 用于部署(若范围包含);credentials/ENV 管理密钥。前后端分离(SPA/移动端)使用 --api 或 config.api_only,不要在 JSON API 中强加 Turbo。

组织与规则:app 下含 controllers、models、views(api_only 时省略)、jobs、mailers、policies(若用 Pundit/ActionPolicy)、services(用例 PORO)。模型保留校验与不变量,跨模型编排放入 service。控制器必须使用强参数;授权在服务端完成(Pundit/ActionPolicy/scopes),不能只隐藏视图按钮;SQL 使用查询方法或绑定,禁止拼接输入;迁移尽量可逆,不修改已上生产的迁移;密钥用 Rails.application.credentials 或 ENV,禁止提交;HTML 开启 CSRF,API 使用显式 token/session;任务需幂等,参数可序列化(用 ID 而非大对象)。

用法要点:控制器按用户/租户作用域查找,避免 IDOR;返回正确 HTTP 状态(404、401、403、422);JSON 使用 jbuilder/alba 等序列化器。Active Record 配合数据库约束、inverse_of、includes/preload/strict_loading 防 N+1、事务处理复合写入。Hotwire 用 Turbo Drive/Frames/Streams 与最小 Stimulus,业务逻辑留在服务端。任务默认 Solid Queue,邮件用 deliver_later,除非仓库已用 Sidekiq/GoodJob,不要在同一功能中切换后端。测试使用项目既有的 fixtures 或 FactoryBot,覆盖授权、强参数、模型不变量与关键 Hotwire 流程,命令为 bin/rails test 或 bundle exec rspec。部署在仓库已有 config/deploy.yml 或用户要求时使用 Kamal,迁移在发布流程中执行。

限制:资料未提供具体收费、价格、平台支持范围或效果数据;未提供安装命令与完整代码示例。