めも帖

「めも帖」代わりにダラダラと書いていったり、めもしたりしているだけです。

Rails で 期間指定(between)をしてデータを取り出す

Rails で期間指定をしてデーター抽出をしようとしました。 SQL だと、between を使えばいいと思うのですが(SQL 的に)、ActiveRecord だとどうなるんだろう?と調べてみたら、ありました。

scope で 期間を設定するときにwhere を利用

scope :created_at_limit,
where(:created_at=> 6.months.ago..Time.now)

思いつかなかった...。これで、月ごとの数字を取得とかできそうです。

ちなみに、月初と月末についても、たまにしか使わないので、調べてしまいました。

月初

foo.created_at.beginning_of_month

月末

foo.created_at.end_of_month

日付の処理はactive_support がサポート

月初、月末について、知ったときに「なんてPHP的な!」と思いました。こんな便利なのは、PHPっぽい。よくよく調べてみたら、Ruby 標準じゃなくて、active_support がサポート(?)してくれてました。日付の計算って、たまにしかしないので、ありがたいです。

参考

RailsによるアジャイルWebアプリケーション開発 第4版

RailsによるアジャイルWebアプリケーション開発 第4版