CarrierWaveではなくActive Storageで画像をupload – Ruby-

Rails5.2からファイル管理gem Active Storageが同梱された

使う方法

bin/rails active_storage:install

Active Storageが利用する2つのテーブルが設計されたmigrationファイルができるので

bin/rails db:migrate
でDBに反映

task.rbに
has_one_attached :image (1つのタスクに1つのimage.画像をimageと呼ぶよ)

viewに(_form.html.erb)
f.label :image
f.file_field :image
※ new.html.slimにpartial: ‘form’を埋め込んでる状態です。

config/locales/ja.ymlに
image: 画像

ここまでで新規登録画面見るとファイル選択ボタンも表示されてますが、
今のままではstrong parameterによって無視されてしまう為画像登録されません。

なので、controllers/tasks_controller.rbの

登録された画像を表示する

登録はできるようになりましたが、今のままでは登録された画像を表示する機能をまだ実装していない為確認ができません。

views/tasks/show.html.slim

画像を表示するためにimage_tagに@task.imageを渡してます。
image.attached?と判定コード書く事で実際に画像が添付されてるときだけimage_tagで画像を表示するようにする

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)