0

刚接触轮胎并试图弄清楚如何在我的个人资料模型中搜索 DOB(出生日)列。

  • 尝试建立一个简单的搜索,我可以设置 age_from 和 age_to (比如 20 到 60 )
  • 由于我只有一个 dob 字段,我该怎么做?
  • 在创建记录时计算年龄并将其存储在列中并将其添加到我的 Profile 模型以清理搜索是否会更好?

对此最好的方法是什么?谢谢

4

2 回答 2

4

如果您的模型有一个 dob 字段,那么您可以像这样进行查询:

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

您可以通过执行类似date_fromdate_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 回答