You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby on Rails中如何通过迁移为Posts表添加ActiveStorage视频附件?

解决ActiveStorage添加视频附件的迁移错误

你犯了一个典型的新手错误:ActiveStorage 不是通过直接在数据表中添加attachment类型列来实现附件关联的,它有自己独立的存储表结构。

正确操作步骤:

  1. 删除你创建的错误迁移文件,这个迁移的思路完全不符合ActiveStorage的设计逻辑。
  2. 修改Post模型,在app/models/post.rb中添加附件关联:
    • 若每个Post仅需绑定一个视频:
      class Post < ApplicationRecord
        has_one_attached :video
      end
      
    • 若每个Post需绑定多个视频:
      class Post < ApplicationRecord
        has_many_attached :videos
      end
      
  3. 无需额外执行迁移操作,ActiveStorage会通过active_storage_attachments和active_storage_blobs两张系统表,统一管理所有附件的关联与存储信息,你的posts表不需要新增任何列。

补充说明:

如果还未初始化过ActiveStorage,先运行以下命令完成安装:

rails active_storage:install
rails db:migrate

内容的提问来源于stack exchange,提问作者user21161564

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 22:27:44