SuperAPI AI 工具集

ruby-conventions

设计与创作

查看项目

更新于 10-16 08:05

技能介绍

用途:为 Ruby 与 Rails 项目提供编码规范与最佳实践参考,适用于编写或评审 Ruby/Rails 代码、设计服务对象与架构、以及编写测试时使用。

主要能力与约定: 架构方面,建议用服务对象承载业务逻辑(如 app/services 下的 UserRegistrationService,通过 initialize 注入参数与 mailer,call 方法执行),控制器保持轻薄,仅调用服务并渲染结果,异常如 ActiveRecord::RecordInvalid 转为相应状态码。

参数与查询安全:始终使用强参数,通过 params.require(:user).permit(...) 过滤,禁止直接 User.create(params[:user]);查询必须参数化,使用 User.where(email: email) 或 User.where("email = ?", email),禁止字符串插值以防 SQL 注入;用 includes 预加载避免 N+1 查询。

测试:使用 RSpec 做行为导向测试,通过 instance_double 与 allow 模拟依赖,断言持久化、字段值与邮件调用;使用 FactoryBot 而非 fixtures 构造数据,配合 let 使用。

API 设计:使用一致的序列化(如 JSONAPI::Serializer 定义 attributes),路由按命名空间与版本划分(namespace :api 下 namespace :v1)。

语言模式:两个以上参数使用关键字参数;使用安全导航 user&.profile&.avatar_url;文件头添加 # frozen_string_literal: true。

反模式:胖模型、控制器内业务逻辑、用 fixtures 代替工厂、测试实现细节、SQL 字符串插值、未用 includes 导致 N+1、请求周期内同步发邮件。

限制:资料未提供安装命令、收费方式、支持平台或版本要求等信息,暂未提供。