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 がサポート(?)してくれてました。日付の計算って、たまにしかしないので、ありがたいです。
参考
- http://blog.livedoor.jp/sasata299/archives/51312035.html
- http://stackoverflow.com/questions/2381718/rails-activerecord-date-between
RailsによるアジャイルWebアプリケーション開発 第4版
- 作者: Sam Ruby,Dave Thomas,David Heinemeier Hansson,前田修吾
- 出版社/メーカー: オーム社
- 発売日: 2011/12/01
- メディア: 単行本(ソフトカバー)
- 購入: 12人 クリック: 206回
- この商品を含むブログ (39件) を見る