rails

Shrineを使ってRailsで画像投稿しよう!!


 

Railsでの画像アップロード機能を作成する

今回は画像アップロード機能ライブラリの『Shrine』の導入方法をメモしていきます!

Shrineのいいところは実装が簡単でミニマルに始めることができることです。

 

他の有名なアップロード機能ライブラリと言えば『ImageMagick』などがありますね。

 

Shrineのインストール

gemfile内に

を記述して、

をしてください。

 

shrine.rbを作成する

shrineに関する初期設定を書いていきます。

app/config/initializers/下にshrine.rbを作成してください。

 

image_dataカラムの追加

前回まで作成していたNoteテーブルに画像を保存するカラムを作成します。

画像が入るカラムなので、imageという名前で作成したいです。

しかし、ここで注意が必要です。

shrineを使用して画像を保存する場合、カラム名には「_data」をつけてあげなければいけません。

なので今回は「image_data」カラムを追加します!

こちらをターミナルで打ってください。

 

uploaderを作成

app/下にuploadersディレクトリを作成してください。

そして、app/uploaders/下にnote_image_uploader.rbを作成してください。

Shrineを継承させることが大事です!

 

modelを編集

app/models/Note.rbを編集していきます。

このように編集してください。

include NoteImageUploader[:image]

を追加しました。

NoteモデルとUploaderががっちゃんこしました!

 

ストロングパラメータ

次はapp/controllers/notes_controller.rbを少しだけ編集します。

note_paramsにimageを追加することでストロングパラメータに対応しました。

注意が必要なのが、ここでは「image_data」ではなく「image」にすることです。

 

 

投稿Form作成

今回はscaffoldしてできたformを編集します。

編集した結果がこちらです。

 

<%= form.file_field :image %>

ここが一番大事ですね

image_dataではなく、imageにしましょう。

 

 

最後に

とても簡単ですね、
5分で試せると思うので、是非お試しください!


コメントを残す

*