# プラグインでホワイトリストに登録された「孤児」アップロードを安定して追加する方法の追加

**URL:** <https://meta.discourse.org/t/adding-a-stable-way-of-adding-whitelisted-orphaned-uploads-in-a-plugin/128354>\
**Category:** Development\
**Created:** [2019 年 9 月 12 日午前 2:15 UTC](https://meta.discourse.org/t/adding-a-stable-way-of-adding-whitelisted-orphaned-uploads-in-a-plugin/128354 "2019-09-12T02:15:12Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![eviltrout](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eviltrout/32/5275_2.png) [@eviltrout](https://meta.discourse.org/u/eviltrout)\
**Post date:** [2019 年 9 月 12 日午後 2:45 UTC](https://meta.discourse.org/t/adding-a-stable-way-of-adding-whitelisted-orphaned-uploads-in-a-plugin/128354/5 "2019-09-12T14:45:04Z")

</div>

> [@sam](#):
>
> レビューアブルについて、@eviltrout は任意のオブジェクトをレビューアブルにリンクできる一般的な仕組みを導入しました。

Rails の [単一テーブル継承](https://api.rubyonrails.org/classes/ActiveRecord/Inheritance.html) のことをおっしゃっていますか？レビューアブルには、すべてに共通するコアロジックがある一方で、追加のフィールドも存在するため、これは非常に適したアプローチです。

ただし、このケースでは問題の核心は、アップロード ID が至る所に散らばっており、それらが削除された際にアップロードも削除されていない点にあるようです。

ユーザーがプロフィールからアップロードを削除しても、同じアップロードの SHA1 がアプリ内の他の場所で使用されている可能性があるため、削除するのは安全ではないのでしょうか？もしそうであれば、@sam が提案した `UploadReference` テーブルという解決策は良いと思います。

もしアップロードがこのような形で共有されていないのであれば、それらのフィールドが `NULL` になった時点で削除する方が、より良い解決策になるでしょう。

---

_[View the full topic](https://meta.discourse.org/t/adding-a-stable-way-of-adding-whitelisted-orphaned-uploads-in-a-plugin/128354)._
