2012年11月20日火曜日

rails3.2.8+mongoidでcreated_atを使うときの命令あれこれ

mongoidの命令で迷った部分がいくつかあったのでメモ


・mongoid criteriaという、mongoidのメソッドをつなげることができる便利なメソッドがある。
・$gtとか$andとかはmongoidで書く場合は必要ない(書き方が違う)
・変数であれば、直接矢印のあとに書ける(適切な形で書かないとエラー)

以下は、criteriaを使いメソッドチェインをし、要素をcreated_atの11月1日から30日までの月別アーカイブをしている例。日にちが浅い順にascで最後に並べ替えている。

posts_controller.rbで、
例)
@hari = "2012-11-01"
@hari_last = "2012-11-30"
@contacts = Contact.where({ :created_at.gte => @hari, :created_at.lte => @hari_last}).asc(:created_at)


なんで@hariにしたかって、友人から電話かかってきて、片手で適当にうったのでww
特に意味はないです。笑

ちなみにmongoでdb.posts.find()でデータを検索かけると、
created_atのところに ISODateってかかれてるんだけど、
これは気にしなくていいみたい。
むしろここに:created_at.gte => "ISODate("2012-11-1")"とか書こうもんならエラーがでた。