Apartment gem を使用した ActiveStorage は、テナント スキーマではなくパブリック スキーマのみをチェックしてファイルをロードします
概要
Apartment (具体的には ros-apartment フォーク) を使用して、Spree コマース アプリ (ruby 3.2.0、rails 7) でマルチテナントをセットアップしようとしています。
ファイルをアップロードすると、それらは正しいテナント スキーマに追加され、 ActiveStorage::Blob で確認できます。しかし、イメージにアクセスしようとすると、テナントスキーマではなくパブリックスキーマの ActiveStorage::Blob のみが参照され、最終的に 404 エラーがスローされます ->
ActiveRecord::RecordNotFound in ActiveStorage::Representations::ProxyController#show Couldn't find ActiveStorage::Blob with 'id'=1
正しく動作させるために何か他の設定をする必要がありますか?
config.middleware.use Apartment::Elevators::Subdomain を application.rb に追加しました。
助けていただければ幸いです。ありがとうございます。
解決策
これは Rails 7 との互換性の問題でした。Rails 6.1.2 に切り替えたところ、正しく動作しました。
アパートとロスアパートメントの宝石はもうメンテナンスされていないようです。
参照: https://github.com/rails-on-services/apartment/issues/234#issuecomment-1756833846