Tag: 计算列

如何在rails中缓存计算列?

我有一个活动记录对象树,如: class Part “Part” def complicated_calculation if sub_parts.size > 0 return self.sub_parts.inject(0){ |sum, current| sum + current.complicated_calculation } else sleep(1) return rand(10000) end end end 每次重新计算复杂计算成本太高。 所以,我需要一种缓存值的方法。 但是,如果更改了任何部分,则需要使其缓存及其父级和祖父级等的缓存无效。 作为草稿,我创建了一个列来保存“部分”表中的缓存计算,但这有点臭。 看起来应该有一种更简洁的方法来缓存计算值,而不会将它们放在“真实”列旁边。