mcpField
I
inertia-rails-best-practices

inertia-rails-best-practices

github.com/cole-robertson开发38108 次安装30 周前更新
代码仓库

关于 inertia-rails-best-practices

面向 Ruby on Rails 中 Inertia.js 应用开发与审查的技能,按八个领域整理实践规则,涵盖配置、数据处理、安全和测试。

主要功能

  1. 01覆盖八个开发领域
  2. 02Props 与数据管理规则
  3. 03表单和验证模式
  4. 04导航与性能建议
  5. 05安全和测试建议

适用场景

  1. 01启动 Inertia Rails 新项目
  2. 02审查或重构 Inertia 代码
  3. 03改善页面性能
  4. 04实现安全表单并测试响应

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/cole-robertson/inertia-rails-skills --skill inertia-rails-best-practices

安装后在 Claude Code 中输入/inertia-rails-best-practices确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
references/
AGENTS.md
scripts/
setup.sh

详细介绍

Inertia Rails 最佳实践

这是一份全面指南,介绍如何使用 Ruby on Rails 构建高质量的 Inertia.js 应用。本指南涵盖 8 个类别中的 50 多条规则,并根据对应用质量、性能和可维护性的影响进行优先级排序。

何时使用本指南

  • 编写新的 Inertia Rails 控制器或页面
  • 审查现有的 Inertia Rails 代码
  • 重构 Rails 应用以使用 Inertia
  • 优化 Inertia 应用的性能
  • 实现身份验证/授权模式
  • 构建带验证的表单
  • 为 Inertia 响应设置测试

类别概览

#类别优先级影响
1服务端设置与配置CRITICAL所有 Inertia 功能的基础
2Props 与数据管理CRITICAL性能提升 2–5 倍,安全性
3表单与验证HIGH用户体验、数据完整性
4导航与路由HIGHSPA 体验、性能
5性能优化MEDIUM-HIGH页面加载速度提升 30–70%
6安全性MEDIUM-HIGH防范常见漏洞
7测试MEDIUM代码质量、可维护性
8高级模式MEDIUM可扩展性、复杂用例

快速参考

服务端设置与配置(CRITICAL)
ID规则适用场景
setup-01使用 Rails 生成器进行初始设置新项目
setup-02配置资源版本控制以使缓存失效所有项目
setup-03设置恰当的布局继承多布局应用
setup-04合理配置 flash 键Flash 消息
setup-05使用环境变量进行配置部署
setup-06周全地设置默认渲染行为约定优于配置
Props 与数据管理(CRITICAL)
ID规则适用场景
props-01Props 中仅返回必要数据所有响应
props-02使用共享数据提供全局 Props身份验证、设置
props-03使用 lambda 实现延迟求值开销较大的操作
props-04对非关键数据使用延迟 Props性能
props-05正确实现部分重新加载刷新数据
props-06绝不在 Props 中暴露敏感数据安全性
props-07使用 as_json 进行正确序列化数据格式化
props-08在适当情况下实现深度合并嵌套数据
props-09对稳定数据使用 once Props导航性能
props-10使用 Props 转换器统一命名camelCase 转换
表单与验证(HIGH)
ID规则适用场景
forms-01复杂表单使用 useForm 辅助函数程序化控制
forms-02简单表单使用 Form 组件声明式表单
forms-03正确处理验证错误用户反馈
forms-04多个表单使用错误包多表单页面
forms-05表单提交后使用重定向模式PRG 模式
forms-06正确处理文件上传Multipart 表单
forms-07验证错误出现时保留表单状态用户体验
forms-08嵌套数据使用点号表示法复杂表单
forms-09使用预检功能进行实时验证服务端验证
forms-10非导航请求使用 useHttpAPI 调用
导航与路由(高)
ID规则上下文
nav-01使用 Link 组件进行内部导航SPA 行为
nav-02使用 inertia_location 进行外部重定向外部 URL
nav-03适当实现 preserve-scroll滚动位置
nav-04使用 preserve-state 保留组件状态表单保留
nav-05为链接配置适当的 HTTP 方法RESTful 操作
nav-06对静态页面使用 inertia 路由辅助工具简单路由
nav-07正确处理 303 重定向POST/PUT/PATCH/DELETE
nav-08使用即时访问提升感知性能快速导航
性能优化(中高)
ID规则上下文
perf-01使用动态导入实现代码拆分包大小
perf-02为可能的导航使用预取感知性能
perf-03配置 stale-while-revalidate 缓存数据新鲜度
perf-04仅在必要时使用轮询实时更新
perf-05使用 merge props 实现无限滚动大型数据集
perf-06优化进度指示器用户反馈
perf-07对非阻塞操作使用异步访问后台任务
perf-08使用 InfiniteScroll 组件进行分页大型数据集
perf-09启用视图过渡,实现流畅动画页面过渡
安全(中高)
ID规则上下文
sec-01在服务端实现身份验证身份验证模式
sec-02将授权结果作为 props 传递权限检查
sec-03对敏感数据使用历史记录加密浏览器历史记录
sec-04使用 Rails CSRF 保护表单安全
sec-05在服务端验证并清理所有输入数据验证
sec-06在控制器中使用强参数批量赋值
测试(中)
ID规则上下文
test-01使用 RSpec 匹配器测试 Inertia 响应RSpec 测试
test-02使用 Minitest 断言测试 InertiaMinitest 测试
test-03测试部分重新加载和延迟 props高级功能
test-04使用 Capybara 实现端到端测试集成测试
test-05测试重定向后的 flash 消息Flash 测试
test-06验证组件渲染响应验证
高级模式(中)
ID规则上下文
adv-01实现持久布局状态保留
adv-02使用自定义组件路径解析器非标准路径
adv-03配置 prop 转换器数据转换
adv-04适当处理 SSRSEO 要求
adv-05实现视图过渡现代动画
adv-06对复杂布局使用滚动区域滚动管理
adv-07有效处理事件系统生命周期钩子
adv-08使用布局 props 在页面与布局之间传递数据布局数据
adv-09配置 Vite 插件以优化开发体验项目设置

有关每条规则的详细说明、代码示例和实现指南,请参阅 AGENTS.md。

评论

支持 Markdown