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へのダイレクトアップロードを調べていきます。

blog-page_footer_336




blog-page_footer_336




-BackEnd

執筆者:


comment

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

CAPTCHA


関連記事

rails

Ruby、Railsの時間に関するメソッドを使用してみた

はじめに 普段PHPのお仕事をしています、tonnyです。 半年程前からRuby on Railsの勉強を始めました。 今回はよく使う時間に関するメソッドついてまとめたいと思います。 目次 1 はじめ ...

laravel logo

Laravelで非同期実行する

1 はじめに1.1 動作環境2 準備2.1 デーブルの作成2.2 .envの修正3 ジョブの作成4 ジョブのディスパッチ5 キューワーカーを起動6 より細かな制御6.1 特定のキューにディスパッチする ...

rails

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

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

rails

Rails Developer Meetup に参加してきました【2日目】

1 はじめに2 Rails Developer Meetup3 テストのないレガシーなRailsアプリをリファクタした話3.1 なぜリファクタリングしたのか3.2 コードを3種類に分類する3.3 モデ ...

Stripe Connectを使って複合プランの継続課金を実装

1 はじめに1.1 想定する継続課金1.2 想定するシチュエーション2 継続課金商品の作成2.1 プランの継続課金商品の作成2.2 ID数の継続課金商品の作成3 実装3.1 プランAとID数を30契約 ...

フォロー

blog-page_side_responsive

2017年5月
 123456
78910111213
14151617181920
21222324252627
28293031  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。