0

タイヤが初めてで、プロファイル モデルで DOB (誕生日) 列を検索する方法を理解しようとしています。

  • age_from と age_to (たとえば 20 から 60 ) を設定できる単純な検索を構築してみてください。
  • dob フィールドしかないので、これを行うにはどうすればよいですか?
  • レコードの作成時に年齢を計算して列に保存し、それを Profile モデルに追加して検索をクリーンにする方がよいでしょうか?

これに対する最善のアプローチは何ですか?どうも

4

2 に答える 2

4

モデルに dob フィールドがある場合は、次のようなクエリを実行できます。

Profile.where(:dob => date_from..date_to)

次のようなことを行うことで、クエリしようとしている年齢に基づいて事前date_fromに計算できますdate_toDate.today-18.yearsDate.today-24.years

于 2012-08-30T17:50:33.010 に答える
1

スコープでそれを行うには、次のようにします。

scope :age_from, lambda { |age| 
 { :conditions => ["profiles.dob >= ?", DateTime.now << (12* age)] } 
}

scope :age_to, lambda { |age| 
 { :conditions => ["profiles.dob <= ?", DateTime.now << (12* age)] } 
}
于 2012-08-30T17:54:20.357 に答える