BackEnd

Shrineでアップロードする際に画像を加工する

投稿日:2017年5月5日 更新日:

はじめに

こんにちは、onoです。

前回、Shrineを使って画像をアップロードする方法を紹介しました。
今回は、アップロード時に画像を加工する方法を紹介します。

 

アップロードする画像のリサイズ

Gemを追加

Gemfileに下記のGemを追加します。
(HomeBrewなどで事前にimagemagickをインストールしておいてください)

Uploaderの修正

Uploaderに画像リサイズの処理を追加します。

 

サムネイルを作成する

Uploaderの修正

versionsとdelete_rawのプラグインを追加し、リサイズ処理を修正します。

サムネイルを表示する

作成したサムネイルのurlはphoto.image[:thumb].urlで取得できます。

 

バリデーションの追加

Uploaderの修正

validation_helpersのプラグインを追加し、バリデーションを追加します。
バリデーションの処理はAttacher.validateの中に記述していきます。

今回は5MB以下のpngとjpgフォーマットの画像のみ受け付けるようにします。

 

インサートされるレコード

フォームから画像をアップロードして保存すると、下記のようなレコードがインサートされます。

 

さいごに

今後はバックグラウンド処理やS3へのダイレクトアップロードを調べていきます。

age_footer_300rect




age_footer_300rect




-BackEnd

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

半年ぶりにRails Tutorialをやったメモ

はじめに Railsを触り始めて半年ほどたちました、tonnyです。 復習もかねてRails Tutorialを実施したので、そのメモを残します。 やはり2回目でも気づくことは多いので、非常に勉強にな …

私たちのFactoryGirlとRspecの使用ルール その1

1 はじめに2 そもそもなぜ基本ルールなどを作成しようとしたのか?3 Rspec編3.1 describe、context、itの階層で使用する3.2 10個以上のテストレコードを作成したい場合は、ト …

PHP、Ruby、Pythonのfor構文を比較してみた

1 はじめに1.1 環境2 ドキュメント2.1 PHP2.2 Ruby2.3 Python3 1から100まで出力してみる3.1 PHP3.2 Ruby3.3 Python4 リスト型(配列)の出力4 …

configに追記したのに、rails runnerが起動しない?

1 はじめに1.1 環境2 rails runnerを使用してみる2.1 バッチファイルの作成2.2 configにパスを追記2.3 実行3 ところが…3.1 解決方法4 おまけ(runnerコマンド …

Vue.js入門その4〜TODOアプリにサーバーサイドを追加してみる〜

1 はじめに2 準備2.1 今回作成したいもの2.2 環境構築3 サーバーサイド3.1 DB3.2 メモ:rails generateで余分なファイルを生成しない3.3 作成したファイル4 ビューの作 …

page_side_300rect






follow us in feedly

2017年5月
« 4月   6月 »
 123456
78910111213
14151617181920
21222324252627
28293031