Soft delete in ActiveStorage

Cześć,

mam projekt, w którym używamy Paperclip. Jesteśmy w trakcie migracji na ActiveStorage, ale pojawił się pewien problem. Otóż, większość modeli, do których podpięte są pliki, ma ustawione soft-delete. Używamy do tego act_as_paranoid. Niestety, jak soft-kasuje instancje modelu, to AS usuwa rekord z active_storage_attachments. Możliwe jest tylko pozostawienie blob-a w active_storage_blobs. Tym samym po przywróceniu instancji modelu, nie mamy już połącznia między instancją modelu a plikiem, chociaż plik ciągle istnieje (w bazie i na S3). Czy ktoś może miał podobny problem i może coś podpowiedzieć?

Mam taki pomysł, że można by zrobić mirror-table dla active_storage_attachments, powiedzmy active_storage_attachments_deleted. W każdym modelu, który ma soft-delete, zrobić callback before_destroy, w którym będę tworzyć kopię rekordu z active_storage_attachments. Potem na after_recovery (callback z act_as_paranoid), będę przywracać rekord w active_storage_attachments. Można to pewnie ogarnąć jako concern, by dzielić tą logikę między modelami. Oprócz siermiężności tego rozwiązania, co o tym sądzicie? :upside_down_face: