Rails / 誕生月でユーザーを検索する

Shunsuke Sawada

そんなことはまれにしかないでしょう。
誕生日っていったらだいたい期間指定だからね。
でも必要なことがあったのさ。

birth_day はDate型とします。

date_of_birth の方が英語的に自然かも。

ruby
1
2
3
4
5
6
7
8
9
10
11
# スコープなら
scope :filter_by_birth_month, -> (month) {
 where('extract(month from birth_day) = ?', month)
}

# クラスメソッドなら
def self.filter_by_birth_month(month)
  where('extract(month from birth_day) = ?', month)
end

これもまた PostgreSQLの話題か…。

extract 便利。
集計作業してるとこういうのが増えてきそう。

ではー。

参考

ruby on rails - ActiveRecord Find By Year, Day or Month on a Date field - Stack Overflow

Shunsuke Sawada

おすすめの記事

Railsを4.2にバージョンアップしたら、Vagrantのローカル開発環境にアクセスできなくなった問題
Railsのバリデーションエラー後にレイアウトが崩れるとき
acts-as-taggable-on タグを表示させる順番を決めたい