アクトインディ開発者ブログ

子供とお出かけ情報「いこーよ」を運営する、アクトインディ株式会社の開発者ブログです

RailsでActiveStorage使っていない場合の注意点

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が重なって遅くなることもありますので、 対応した方がスックリするかと思います。

最後に

アクトインディではエンジニアを募集しています。

actindi.net