我想在控制台中迭代相当大的记录集合,将它们的日期除以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}
答案 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}