在Rails中保存模型时,我需要计算值。因此,我调用calculate_averages
作为Survey
类的回调:
before_save :calculate_averages
但是,偶尔(最初我有10k条记录需要此操作),我需要手动更新每条记录的所有平均值。没问题,我有如下代码:
Survey.all.each do |survey|
survey.some_average = (survey.some_value + survey.some_other_value) / 2.to_f
#and some more averages...
survey.save!
end
在运行这段代码之前,我担心calculate_averages
会被调用并重复这段代码,甚至可能会导致我的处理方式出现一些问题。好的,然后我想,我什么也不做,让calculate_averages
被调用并做它自己的事情。问题是,首先,有没有一种方法可以强制调用回调,即使您没有对记录进行任何更改?
其次,计算平均值的方式简单地不让回调被调用并一次性计算所有东西的平均值,这是far更有效的方法。有没有可能不让回调被调用?
https://stackoverflow.com/questions/21371734
复制相似问题