我很好奇这两者之间的区别。
irb(main):001:0> require 'active_support/core_ext'
=> true
irb(main):002:0> 1.second.from_now == 1.seconds.from_now
=> false
他们看起来和我一样
irb(main):003:0> p 1.second.from_now; p 1.seconds.from_now; nil
2013-06-14 17:50:28 +0530
2013-06-14 17:50:28 +0530
=> nil
他们都有同一个班级
irb(main):004:0> 1.second.from_now.class == 1.seconds.from_now.class
=> true
答案 0 :(得分:9)
两次通话之间的时间流逝,这就是他们不同的原因:
Time.now == Time.now
#=> false
Time#to_f
显示它们相距甚远:
a, b = 1.second.from_now, 1.second.from_now
a.to_f #=> 1371213500.506212
b.to_f #=> 1371213500.5062568
对second
/ seconds
的致电是相同的:
1.second == 1.seconds
#=> true
答案 1 :(得分:6)
1.second
是1.seconds
的别名,只是为了让您的代码更具可读性。你可以看到它in the Numeric class in the Rails source。