paperclipで、ローカルにある画像ファイルを登録する。

ActiveRecordのオブジェクトに、
簡単に画像を添付して登録できるPaperclipというプラグインがあります。

一般的な使い方は、ブラウザのフォームから、画像を送信して画像を登録するのですが、
rails runnerで動かすスクリプト等でも使いたいので、
ローカルのディスクに保存してあるファイルからの登録をしてみます。

事前に、下記のwikiを参考に、paperclipのインストール、ActiveRecordへのコードの追加を済ませておいてください。
paperclip wiki
下記の例では、Machineオブジェクトに、imageという名前でpaperclipを設定しています。
class Machine < ActiveRecord::Base
has_attached_file :image, :styles => { :medium => "300x300>", :thumb => "100x100>" }
end

まずは、登録したい画像オブジェクトを、抽出します。
image_file = File.open('abc.jpg')

次に、該当するActiveRecordのモデルオブジェクトを抽出します。
item = Item.create

そして、最後にファイルオブジェクトを代入します。
item.image = image_file
item.save

wikiやソースコードのコメントには、
この使用法は載っていませんでしたが、
無事、オリジナル、ミディアム、サムネールの3種類の画像が登録されました。

Leave a Reply