ちょっと仕事で過去のセール価格を複数csvで吐き出したい事があったので、最近勉強した内容でちょっとコードを書いてみた。

とりあえずプロジェクトのディレクトリでsqlite3 price.dbでデータベースを作成する。

商品、通常価格、セール価格を格納するので

create table PriceData (
id integer primary key,
item text,
defaultprice integer,
saleprice integer
);

といった具合に適当にフィールドを作成。あとはActiveRecord::Base.establish_connectionしてclassに継承すれば

PriceData.order("id desc").where(:item => "foo").all.defaultprice
PriceData.order("id desc").where(:item => "bar").first.saleprice

といった具合にDBから引っ張ってこれるし、

PriceData.create(
  :item      => "hoge",
  :default   => "9800",
  :saleprice => "7800"
)

簡単にデータを追加する事ができる。ActiveRecordマジ便利。とりあえず引数(output/input)で動作を変えるようにしたけど、exe化してファイル名で判別した方が楽かな?また今度書き直してみよう。