From d5747484320ce2156f2e11d2ad72a157118d0ef8 Mon Sep 17 00:00:00 2001 From: "Stanko K.R." Date: Tue, 18 Nov 2025 19:23:55 +0100 Subject: [PATCH] Add script to fix active storage links --- script/fix-active-storage-links.rb | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 script/fix-active-storage-links.rb diff --git a/script/fix-active-storage-links.rb b/script/fix-active-storage-links.rb new file mode 100644 index 000000000..2fa66bbfd --- /dev/null +++ b/script/fix-active-storage-links.rb @@ -0,0 +1,24 @@ +#!/usr/bin/env ruby + +require_relative "../config/environment" +require "uri" +require "base64" +require "json" + +ActionText::RichText.all.where("body LIKE '%/rails/active_storage/%'").find_each do |rich_text| + next unless rich_text.body + + blobs = rich_text.embeds.map(&:blob) + + rich_text.body.send(:attachment_nodes).each do |node| + filename = node["filename"] + + blob = blobs.select { |b| b.filename == filename } + raise "Multiple blobs with filename #{filename}" if blob.size > 1 + blob = blob.first + + node["sgid"] = blob.attachable_sgid + end + + rich_text.save! +end