[Ruby on Rails 4] CarrierWave を利用して画像をアップロードする form もしくは API を作成する
いろいろ調べたので memo.
リンク先に重複あり。
Contents
公式
一通り実装した後に、refile という後継があることを知った。
次の機会があれば使うかも。
Form の作成手順
アップローダーとモデルの紐付け、ビューへの追記など全般。
- carrierwave + rails 4.2.5 画像アップローダー – 酒と泪とRubyとRailsと
- RailsのファイルをアップロードするgemのCarrierWaveのインストール方法 – Rails Webook
bin/rails g uploader foo
でアップローダーを作成する。
紐付けたいモデルに mount_uploader :foo, FooUploader
を追加する。
親子関係のフォーム
次の機会に Simple_form を使うことにする。
ファイル名の変更
- How to: Create random and unique filenames for all versioned files · carrierwaveuploader/carrierwave Wiki
- Rails CarrierWaveのファイル名を変更する方法 – KeruuWeb
ユニークなファイル名を付けたい場合に、時間を使うとファイルを見失う。
画像のリサイズ
- RailsのCarrierWaveのカスタマイズ – ファイルの配置先、リサイズ、テストなど – Rails Webook
- CarrierWave + RMagick 画像のリサイズをまとめてみました – 麺処 まつば
bin/rails g
で生成されたアップローダーに設定を加えることで対応できる。
画像の削除
form で f.file_field :image
としたら、f.check_box :remove_image
という形式。
コントローラの params にも :remove_image
を忘れずに追加する。
upload ディレクトリのファイルが削除され、レコードのカラムが null となる。
レコードごと削除したい場合は、_destroy
を利用する。
バリデーション
- How to: Validate attachment file size · carrierwaveuploader/carrierwave Wiki
- carrierwave + rails 4.2.5 画像アップローダー – 酒と泪とRubyとRailsと
テスト
- Rails 超お手軽な画像アップローダー CarrierWave の使い方 | Workabroad.jp
- CarrierWaveを利用した画像アップロード機能をRailsに実装しサムネイルとかに使う方法まとめ
思い通りにかけないので Everyday Rails – RSpecによるRailsテスト入門 を読む。
API の作成手順
全般。
- carrierwaveで画像アップロードAPIサーバー – DesignAssembler
- [rails]carrierwaveを使った画像投稿APIをRspecでテストしてみる – hello-world.jp.net
API のバージョンやネームスペースの管理をしたい場合、こちらが参考になりそう。
- #350 REST API Versioning – RailsCasts
- RailsでAPIサーバを開発する(AngularJS, Ruby on Rails, SPA) | Developers.IO
- RailsでAPI作成とAPIのテストのまとめ – Rails Webook
テスト
API のテスト全般。
- RailsでAPIサーバを開発する(AngularJS, Ruby on Rails, SPA) | Developers.IO
- RailsでAPI作成とAPIのテストのまとめ – Rails Webook
補遺
パーフェクトRuby on Rails で CarrierWave が紹介されている模様。
パーフェクトRuby on Rails
posted with amazlet at 17.02.10
技術評論社 (2014-10-31)
売り上げランキング: 50,036
売り上げランキング: 50,036