SuperAPI AI 工具集

active-storage

智能体与模型

查看项目

更新于 10-15 23:58

技能介绍

用途:为 Rails 应用提供 Active Storage 的专家级指导,覆盖文件上传、附件、图片处理与云存储配置,适用于为模型添加上传、配置 S3/GCS/Azure、实现图片变体、浏览器直传、调试附件问题、迁移存储服务及测试上传等场景。

主要能力与原则:始终先运行安装生成器(bin/rails active_storage:install 与 bin/rails db:migrate),生成 blobs、attachments、variant_records 三张表;优先使用 libvips 而非 ImageMagick;用 with_attached_<name> 作用域防止 N+1;渲染前用 attached? 判断附件是否存在;生产环境用代理模式以配合 CDN;在模型上用命名变体而非视图内联定义。

使用方式:在 config/storage.yml 定义服务并在各环境设置 config.active_storage.service;模型用 has_one_attached / has_many_attached 声明,可在块中定义 :thumb、:medium 等命名变体;控制器需在强参数中允许附件参数,可用 attach 从上传、IO 或 URL 附加;视图用 image_tag 配合 attached? 与命名变体;表单用 file_field,多文件加 multiple: true,直传加 direct_upload: true;更新 has_many_attached 时用 signed_id 隐藏字段保留已有附件;删除用 purge 或 purge_later。

限制与注意:变体依赖 image_processing gem 及系统安装的 libvips 或 ImageMagick;Vips 语法为 resize_to_limit: [w, h],不可混用 MiniMagick 语法;未判断 attached? 会抛错;has_many_attached 默认替换全部附件;多租户 SQLite 应用保存后图片 404 需改用 active-storage-multitenant。测试用 file_fixture_upload,并在 teardown 清理存储目录,并行测试需按进程隔离存储根路径。具体云服务配置细节资料未完整提供。