SuperAPI AI 工具集

turbo

通用与其它

查看项目

更新于 10-16 00:20

技能介绍

用途:该技能提供使用 Turbo(Drive、Frames、Streams)构建现代 Rails UI 的专家指导,适用于局部页面更新、实时广播、懒加载、内联编辑、标签页与模态框等场景。核心理念是 HTML over the wire:服务端渲染 HTML,Turbo 负责传输,业务逻辑留在 Ruby,尽量不写 JavaScript。

主要能力:Turbo Drive 默认拦截链接与表单提交并替换 body,可按需用 data-turbo="false" 关闭;Turbo Frames 将导航与更新限定在页面某个区域,支持 src 懒加载、target 指定其他 frame、data-turbo-frame="_top" 跳出;Turbo Streams 提供 append、prepend、replace、update、remove、before、after 七种定向 DOM 操作,可用于非 GET 响应或经 ActionCable 广播;Turbo 8 提供 morph 刷新,保留表单状态与滚动位置。

使用方式:Rails 7+ 默认已含 turbo-rails,缺失时执行 bundle add turbo-rails 与 bin/rails turbo:install。视图中用 turbo_frame_tag 包裹区域,用 turbo_stream_from 订阅广播;控制器用 respond_to 返回 format.turbo_stream 或 format.html;模型用 after_create_commit、after_update_commit、after_destroy_commit 或 broadcasts_to 广播。

限制与注意:Frame 两侧必须有匹配 ID,否则报 Content Missing;校验失败须返回 status: :unprocessable_entity;Streams 仅适用于非 GET 请求;广播渲染 partial 时无请求上下文,不能用 current_user;replace 会移除目标元素本身,update 只替换其内容;应保留 HTML 回退以支持渐进增强。更多细节见其 references 目录。