見出し画像

備忘録19:Rails-ActiveStorageを使用する

転職のための3月6日から某スクールにでプログラミング学習を始めた32歳のおっさんです。オリジナルアプリの開発が終わって一息。
C#とPHPの学習もしたい。


1:開幕の自問自答

①画像を投稿できるようにしたい。
 ⇨じゃあActiveStorage使いましょう。
②What is ActiveStorage?????
 ⇨画像のアップロードを実装する機能です。
③How to use????
 ⇨指定のコマンドを入れたらOKです。
④他には????
 ⇨後はmodel controller form_withをいじればOKです。

と、言う訳で今回はActive Storageです。
サイズの調整的な物は次回か次々回辺りに書きます。


2:環境

OS:Mac BigSur
Rails:6.0.0


3:全体の流れ

①やりたいことの確認
②前提
③導入方法
④使い方
⑤終わりに



4:やりたいことの確認

スクリーンショット 2021-07-15 15.27.07

よくある、ファイルアップロード機能。
メッセージの投稿に併せて画像のアップロードを行えるようにします。



5:前提

スクリーンショット 2021-07-15 15.45.01

スクリーンショット 2021-07-15 16.20.26

メッセージ投稿機能は実装済み
・controller:Messages controller
・Model:Message
・Routing:indexとcreateのみ
・Viewはトップページのみ



6:導入方法

ActiveStorageの導入方法

rails active_storage:install
rails db:migrate

スクリーンショット 2021-07-15 16.39.23

このコマンド2つでOK。
SS2枚目の赤枠のように、テーブルが2つ追加されていればOK。



7:使い方

導入が完了したら使えるようにする。
その後、3つのファイルを編集する。

①モデル
②コントローラー
③View



①モデルの編集

スクリーンショット 2021-07-15 16.48.55

このようにアソシエーションを組む。
1つのレコードに複数の画像ファイルを持たせる場合は以下の記述になる。

1つのレコードに複数の画像ファイルを持たせる

has_many_attached :image

他にもコントローラー・ビューに編集が必要だが今回は詳しく書きません。



②コントローラーの編集

スクリーンショット 2021-07-15 16.49.14

permitの割り当てにimageを割り当てればOK。



③Viewの編集

スクリーンショット 2021-07-15 16.53.01

form_withに記述を追加する。
file_fieldを足すだけでOK。

表示する際もimage_tagを使用すればOK。
データは「インスタンス名.image」で渡せるためとても簡単。



8:終わりに

今回はこれで終了です。
使うだけならとてつもなく簡単で有難い限りです。
とは言え、普段であれば画像のサイズ調整やその他の為に
別のソフトウェアやGemを入れています。
それらに関しては、また別で書こうかと考えてます。

画像って便利ですよね。分かり易い。
地上に棲む生物の大半は視覚情報への依存度が高いですからね。
百聞は一見にしかずとも言いますし、実際そうですし。
画像は文字の7倍の情報を伝えられるとも言われてますし。


視覚情報ってすごいですね!!!!!!!!




終わり!!!!!!!!!!!!!!!!!!!!!!

この記事が気に入ったらサポートをしてみませんか?