ActiveRecordで、SQLでいうところのBETWEEN
ってどう書くんだろうと調べてみたら、
なんとwhereでRangeオブジェクトを渡すといいみたい。
User.where(age: 20..29)
# => SELECT "users".* FROM "users" WHERE "users"."age" BETWEEN 20 AND 29
# が発行される
ちなみに20...30と書くとちょっと泥臭い感じになる。あたりまえだけど。
User.where(age: 20...30)
# => SELECT "users".* FROM "users" WHERE "users"."age" >= 20 AND "users"."age" < 30
# が発行される
もちろんTimeオブジェクトでも同じことができて、
User.where(created_at: 1.year.ago..Time.current)
# => SELECT "users".* FROM "users" WHERE "users"."created_at" BETWEEN '2013-09-19 13:23:22.700389' AND '2014-09-19 13:23:22.700657'
# が発行される
これは便利!