你可以在后面排序并抛出所有的“nil”结果吗?

时间:2011-09-28 13:51:22

标签: ruby-on-rails

我想开始按新字段对所有结果进行排序。不幸的是,我的很多旧字段都有nil的时间戳。如何执行此方法并将所有nils放在后面?

.sort{|a,b| b.offering_referral_timestamp <=> a.offering_referral_timestamp}

由于

1 个答案:

答案 0 :(得分:3)

a <=> b 
returns -1 if a < b
returns 0 if a == b
returns 1 if a > b

所以我认为这应该有效(如果你想要最后的所有nil,它们应该比其他元素更大):

.sort{|a,b| a.offering_referral_timestamp.nil? ? 1 : (b.offering_referral_timestamp.nil? ? -1 : a.offering_referral_timestamp <=> b.offering_referral_timestamp)}