RailsでファイルアップロードをActiveStorage以外でやる場合のお話
アクトインディのSampo Kuokkanenです。
さて、皆さん、RailsでファイルのアップデートはActiveStorage使っていますか? 公式のファイルアップデートのやり方ですし、ほとんどの場合は使った方が無難かと思います。
なぜ使わない場合もある?
ファイルの保存のフォルダー構成などを自由にやりたい場合は使えないですので、 使わないという選択肢もあり得ます。
今回は使っていない場合の注意点を書こうと思います。
# application.rb require 'rails/all'
と書いている場合は、使っていなくても、呼び込まれています。 ルートなども入っていて、少し邪魔に感じます。
# application.rb require "rails" require "active_model/railtie" require "active_job/railtie" require "active_record/railtie" require "action_controller/railtie" require "action_mailer/railtie"
のように、部分的にrequire
を呼ぶと一気に全部呼び込まなくても良くなります。
おそらくほとんどのアプリはActiveStorage以外にも使っていない箇所もあるかと思いますので、
最低限必要なものだけ読み込むといいかと思います。ActionCable(個人的にすごく好きなところですが、パフォーマンスが・・・), ActionText, ActionMailBoxあたりも使っているかどうか
確認した方がいいかと思います。
JavaScriptも忘るべからず
// package.json "@rails/activestorage": "^6.0.0",
JavaScriptも読み込んでいないか確認した方がいいです。
設定ファイル
あとは設定周りでActiveStorageを設定している箇所があれば、それを削除してもらえれば大丈夫です。
storage.yml
も削除して大丈夫です。
例)
# config/test.rb # Store uploaded files on the local file system in a temporary directory. config.active_storage.service = :test # この行がいらなくなります
そこまで気にすることがない作業かもしれないですが、Railsだとこういうフレームワーク内部のものとGemが重なって遅くなることもありますので、 対応した方がスックリするかと思います。
最後に
アクトインディではエンジニアを募集しています。