0
0

キャッシュ機能の差でActiveStorageではなくCarrierwaveを使うことにした

Posted at

これは何?

railsのファイル管理機能で、ActiveStorage vs Carrierwave論争はよく聞く。

Ruby on Rails】ActiveStorageの概要とその利点、弱点
ActiveStorage vs CarrierWave
画像管理をActiveStorageからCarrierWaveへ乗り換えた話
Catch allルーティングとActive Storage

プレビュー機能の実装にはCarrierwaveのキャッシュ機能が必要だったので、備忘録として記述する。

要件

開発アプリケーション概要

  • 管理サイトとエンドユーザ画面のあるwebアプリケーション
  • 管理サイトでコンテンツの編集を行い、エンドユーザサイトで閲覧することができる

開発機能概要

  • 管理サイトのコンテンツ編集画面において、プレビューを行いたい
  • 画面の左半分が入力部分、右半分をプレビュー部分とし、エンドユーザサイトと同じ見た目で入力をリアルタイム判定したい

実装方法

  • エンドユーザサイトのviewをコンポーネント化し、管理サイトの編集画面の右半分に埋め込む
  • 左側の入力部分のform内の値が更新されるたびにformの内容をpreview更新用エンドポイントに送信してturboの描画内容を返却させ、その返却値でまるっと右側のエリアを更新

この際、ActiveStorageではキャッシュ機能が存在していないため、未保存の画像を呼び出すことはできない。
故に入力部分で画像を選択しても、プレビュー部分には表示されない。

一方でCarierwaveにはキャッシュ機能が存在しているので、未保存であっても選択した画像をプレビュー部分に表示することができる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0