对不起,我是铁路新手。我刚刚在一个模型中找到了一种计算年龄的方法:Get person';Ruby 中的年龄
功能如下:
def age
now = Time.now.utc
now.year - birthday.year - (birthday.to_time.change(:year => now.year) > now ? 1 : 0)
end
有人能解释一下第三行发生了什么吗?我不能理解:
(birthday.to_time.change(:year => now.year) > now ? 1 : 0)
这句话只是想检查当前年份的生日是否已经过去。如果有,那么
(birthday.to_time.change(:year => now.year) > now ? 1 : 0)
将等于CCD_ 2。否则为CCD_ 3。然后像这样减去:
now.year - birthday.year - 1
或now.year - birthday.year - 0
希望这能澄清你的疑虑。
只是一个建议,我宁愿使用irb
,把上面的代码分解成更小的部分,看看每个部分到底为自己做了什么。这将帮助我更好地理解事物。