我目前正在使用 find 或 create 方法来更新我用来存储缓存信息的关联记录,但我想知道是否有一些更简单的替代方法类似于 build 因为对象是has_one
关系。仅使用 build_ 的问题是在大多数情况下该对象将存在并且需要更新。我可以使用一堆 ifs 检查,但想知道是否有比我目前使用的更好的 rails-fu。
def self.update_caches(data)
cache = SpaceCache.find_or_create_by_space_id(@space.id)
cache.rating = ((data.ratings.sum / data.ratings.size)/20).round
cache.price_min = @space.availables.recent.average(:minimum)
cache.price_avg = @space.availables.recent.average(:price)
cache.save
end
奖金:
我也在这里读到:
http://m.onkey.org/active-record-query-interface
rails 计算方法的平均值、总和等将在 3.1 中贬值,所以我是否应该不确定是否应该更换它们?
count(column, options)
average(column, options)
minimum(column, options)
maximum(column, options)
sum(column, options)
calculate(operation, column, options)