我有一个人员列表,我必须根据他们的出生日期进行排序,只按月份进行排序,而不考虑年份。从一月到十二月。我怎么能用红宝石做在铁轨上?
同样,我需要能够在每个人的编辑屏幕上看到以年为单位的年龄,而不是显示DD/MM/YY。
如果您正在使用Postgres。。。。
您可以使用提取方法创建一个可排序字段:
@people = Person.select('extract("MONTH" from dob) as birth_month').order(birth_month: :asc)
其中"Person"是假定的表名,"dob"是假定列。
这是未经测试的,您可能需要在其中投射::date或其他内容。不过,请查看提取方法。
dob = "01-01-2020"
def age(dob)
(Time.now.to_s(:number).to_i - dob.to_time.to_s(:number).to_i)/10e9.to_i
end