迭代记录created_at日期,并用Time.now的一半时间更新

时间:2011-01-25 20:52:07

标签: ruby-on-rails math

我想在控制台中迭代相当大的记录集合,将它们的日期除以Time.now以来的一半时间并保存。因此,两个月前用created_at说的记录现在是1个月大,1天变成12小时等等。

这不起作用,只是例如:

Log.all.each{|l| l.created_at = l.created_at - (Time.now - l.created_at * 0.5); l.save}

1 个答案:

答案 0 :(得分:1)

尝试:

Log.all.each{|l| l.created_at = Time.at( l.created_at.to_f + (Time.now.to_f - l.created_at.to_f)/2 ); l.save}

哪个应该与:

相同
Log.all.each{|l| l.created_at = Time.at( (Time.now.to_f + l.created_at.to_f)/2 ); l.save}