首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在不运行Rails回调的情况下保存模型

如何在不运行Rails回调的情况下保存模型
EN

Stack Overflow用户
提问于 2014-01-27 09:44:24
回答 8查看 49.2K关注 0票数 30

在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更有效的方法。有没有可能不让回调被调用?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21371734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档