Rails:在“事件”之间保存持续时间

时间:2011-10-08 21:28:49

标签: ruby-on-rails

简而言之,每次用户查看资源时,都会创建一个事件模型对象。每个事件都有一个持续时间列。如何才能最好地保存每个事件之间的持续时间?

class Event
  belongs_to :session
end

我的直觉反应是每次创建新事件时使用after_save回调,计算“now”和 previous 事件之间的时间,并将其保存为上一个事件的持续时间。但是,这会创建一个“瀑布”效果,因为回调会在保存上一个事件时执行,然后在之前的事件之前执行,依此类推。

有什么建议吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

你最好使用after_create回调,这在更新前一个元素时不会触发

答案 1 :(得分:0)

我可能会在用户的会话中保留最后一个事件时间,因为它会很快...这是否有意义可能取决于您何时需要此信息,但是 - 是否用于报告,使用在互动期间等。