Railsで使えるGem

Ruby on Rails 3.2でファイルアップロード〜CarrierWave & RMagick

投稿日:

 

 

CarrierWaveはRubyでファイルのアップロードを簡便にするGemです。

RMagickはImageMagickという画像ファイルを加工するソフトのラッパーです。CarrierWaveからサムネイルなどを作りたいときに使います。

環境:ubuntu server 12.04 ruby 1.9.3-p194 rails 3.2.7

*CentOSではImageMagickの関係でRMagickのコンパイルがうまくいかなかった

参照

RAILS CASTS #253 CarrierWave File Uploads

Gemfile & bundle

Gemfileに追加

generate rb ファイル

“image”はデータベースのカラムとして扱いたい名前

app/uploaders/にimage_uploade.rbというファイルが生成されます。

Modelに”image”という要素を加え、mount_uploaderを記述する

ここではサンプルとして次のように生成した

document.rbを編集して次のように追記

Viewの_form.html.erbにファイルアップロード形式を追加

 

 

Viewのindex.html.erbやshow.html.erbで画像を見せたいときは

to_sがついているのはデータがない場合

ノートでは下みたいな書き方

コメント欄にデフォルトイメージを使いたい場合はdocument.image.urlを使えと

そして、image_uploader.rbのdefault_urlのメソッドをコメントアウトする(未検証)

アップロード時にサムネイルを作成したい場合

RMagickを使う。ほかにMiniMagickというgemもサポートしてるみたい。

6-1 ImageMagickなどをインストールしておく

 6-2 Gemfile & bundle

Gemfileに次のように追記してbundle

 6-3 image_uploader.rb設定

include文をコメントアウト

元のファイルを残したまま別ファイルを生成したいので、# Create different versions of your uploaded files:以下をコメントアウト

:resize_to_limitはRMagickをincludeすると使えるメソッド。アスペクト比を保ったままうまい感じでサムネイルを作ってくれる。

6-4 image_tagでサムネイルを使う

 

*RailsCastsでImageMagickのもっと詳しい使い方のビデオがアップされた

 

*日本語ファイル名を扱う設定

/config/initializers/carrierwave.rbというファイルを作って下の1行を追加すればOK

 

日本語のファイル名が____に置き換わってしまうのを防ぐ

 

*rspecの簡単なテスト設定方法

大量にファイルが生成される場合の対応とかいろいろあるけど、単純にテストを通したいだけの場合はこれで.

-Railsで使えるGem
-, ,

執筆者:

関連記事

sunspot_railsで全文検索

sunpotはsolrというJava製の全文検索サーバをrubyから使えるGem sunspot_rails はsunspotにマージされてました 参考 railscasts.com/episodes

テキストマイニングの初歩 Rubyで形態素解析を行う〜ruby-mecab

By: Cracker Jack – CC BY 2.0 環境 ubuntu server 12.04 英語は単語を空白で区切るのでコンピュータでの解析に向いているが、日本語は助詞などを続 …

no image

Rails3.2でテーブルの並び替えをリファクタリング~ヘルパー

環境 Rails3.2.8でテーブル並び替えのテストを作る~cucumberと正規表現 テストができたのでHelper化 目次1 現状2 helper3 index.html.erb 現状 共通部分が …

Rails3.2で位置情報を日本語表示の住所に変換する~geocoder

ついにブログ記事が100件突破した! そのうちメニュー項目などをわかりやすく構成し直したいと思う いまはRailsのプログラムが楽しくて仕方ない時期なので色々と試して書き溜めたいと思う EverNot …

Railsのテーブル並び替えを実装する

    環境 RailsにTwitter Bootstrapを設定する~twitter-bootstrap-rails 参考 #147 Sortable Lists (revise …