用途:在采用 Ruby on Rails、PostgreSQL、Hotwire(Turbo + Stimulus)、Tailwind CSS 技术栈的项目中编写或生成新代码时,遵循本约定。它只覆盖该栈特有模式,跨领域设计原则(DRY、YAGNI、结构化日志、按目录规则)交由 rails-code-conventions。
主要能力与流程:强制测试先行(HARD-GATE),所有新代码须先写并验证测试再实现:1) 编写 spec(bundle exec rspec spec/[path]_spec.rb);2) 确认失败;3) 写实现;4) 确认通过;5) 必要时重构并保持测试绿色。功能开发按顺序组合:模型(校验、关联、scope,循环中关联用 includes 预加载)、服务对象(抽取非平凡业务逻辑)、控制器(保持精简,委托服务,响应 turbo_stream 与 html)、视图/Turbo 接线(用 <turbo-frame> 包裹动态区块,控制器广播 turbo_stream)、Stimulus(仅当 Turbo 无法处理客户端交互时添加)、Tailwind(应用工具类,重复模式抽到 partial 或 Stimulus target)。每步应可独立测试后再接下一层。
关键模式:Turbo Frames 用 <turbo-frame id> 包裹局部替换区块,链接用 data: { turbo_frame: ... } 定位;Turbo Streams 在控制器 respond_to 中渲染 turbo_stream.replace 并回退 html 重定向;避免 N+1 用 Order.includes(:line_items) 预加载;服务对象以 Orders::CreateOrder.call(...) 形式调用,控制器保持精简。
安全:项目使用 Devise 认证与 Pundit 授权,每个引入受控资源的特性都需应用。
需避免的陷阱:视图放业务逻辑、循环中 N+1、跳过 FactoryBot、控制器动作超 15 行业务逻辑、必填字段无校验、视图嵌入 10+ 行 Ruby 条件、硬编码字符串未用 t()。
集成:可链 rails-code-conventions、rails-code-review、ruby-service-objects、rspec-best-practices、rails-architecture-review。限制:仅覆盖该栈特有约定,不涉及其他栈;具体安装与配置细节资料未提供。