将重复的迭代保存到数据库

时间:2015-05-20 06:30:27

标签: ruby-on-rails ruby database sum

我对rails非常陌生。

我有多个数据点,我在数据库中保存了一个名为“四分卫”的主题。所有这些数据点都加在一起,值为“xoi_qb”。此计算在我的模型中执行:

  def xoi_qb
    sum=0
    sum+= passing_yards|| 0
    sum+= passing_yards|| 0
    sum+= qb_rushing|| 0

每个值都会随着时间的推移而变化,因此总和“xoi_qb”将随时间而变化。目前,“xoi_qb”的总数只是更新,之前的总数已经丢失。

我想做的是每次更改时保存该总计的每次迭代。我不想做一个“cron job”,因为我不想创建一个基于时间的计划来执行rake以查看是否有任何更改...我只想要每个“四分卫”的总计值“xoi_qb”将保存到数据库 每次 我进行更改。

这样,每个“四分卫”最终将会有许多“xoi_qb”值上升和下降。现在,我只想解决这个问题,最后我想在图表中绘制数据点(使用Highcharts或类似的东西)。但就目前而言,我只需要知道如何在每次更改时保存每个“xoi_qb”总数。

我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

您可以在相应的模型中使用before_save回调,然后将以前的值设为_was

看起来应该是这样的:

before_save :store_last_xoi_qb

def store_last_xoi_qb
  last_xoi_qb = self.xoi_qb_was
  # do your things
end