【結論】
・CarrierWaveは、一通りの機能を備えており使用実績も多い。
・Shrineは、必要な機能のpluginだけ選択して読み込む事が出来る。
・ActiveStorageは、Ralis5.2から標準装備されたファイルアップローダー。
【目次】
【本題】
Railsのファイルアップローダーについて
Railsで画像などのファイルをアップロードする機能を実装する場合、ファイルアップローダーが必要になります。 今回はそのファイルアップローダーの中で、主流の三種類の比較を行いたいと思います。
CarrierWave
まず初めに紹介するのは「CarrierWave」です。 かなり古株のファイルアップローダーで、同系統のgemの中でも評価は上位にきています。
使用実績の通り、バリデーションやキャッシュなど一通りの事はこなせます。
Shrine
GitHub - shrinerb/shrine: File Attachment toolkit for Ruby applications
次に紹介するのは、Shrineです。
こちらは、まだ実績の浅いgemですが、必要な機能のpluginだけ選択して読み込ませる事で、動作を軽量化させたり、影響範囲を狭めてデバックを容易にしたりなど、CarrierWaveには無い特徴的な機能を備えています。
ActiveStorage
Active Storage の概要 - Rails ガイド
最後は、ActiveStorageです。
こちらは、Rails5.2から追加された機能で、本当に最近登場したばかりです。
標準で組み込まれているので、導入の容易さがメリットではありますが、まだ開発されて日浅い事もあり、機能面では他のgemに見劣りする部分があるようです(バリデーション・キャッシュ非対応など)
《今日の学習進捗(3年以内に10000時間に向けて)》
本日でQiitaへの毎日投稿は終了。 開発を通して一番痛感したのは、やはりタスク管理の未熟さである。 ひとつひとつのタスクの見積もりはもちろん、ただ闇雲に開発に着手して、結局手戻りなどの無駄が発生するという場面に多々遭遇した。 今後、短期間でスキルを高めていくためには、生産性を向上させるのは不可欠なので、この課題は優先的に取り組んで行きたい。
学習開始からの期間 :150日
今日までの合計時間:1464h
一日あたりの平均学習時間:9.8h
今日までに到達すべき目標時間:1370h
目標との解離:94h
「10,000時間」まで、
残り・・・「8536時間!」