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種類の画像が登録されました。