我正在使用 ActiveRecord 和 Ruby(在 Rails 之外)来跟踪一些统计数据。
我向我的一个模型添加了一个方法 (total_cost
),以使用当前模型中的几个列以及另一个模型中的列进行计算。
我真的很想能够使用我定义的方法使用 ActiveRecord 的一些数学规定(平均、求和)和普通的旧发现,但任何这样做的尝试都会让我失望(一个完全可以理解的)'未知列' 错误,例如
Article.find(:all, :conditions => ["total_cost > ?", 300])
因此,我正在以一种我们可以描述为蛮力的方式做事,只是找到所有的文章,然后将每个文章的 total_value 填充到一个数组中,然后用它进行求和和平均。
除了我正在做的事情,我还有其他选择吗?我是否应该通过 ActiveRecord 查看 MySQL 本身来计算相关值?
最佳答案
你可以做到
Article.sum(:total_cost, :conditions => ["total_cost > ?", 300])
Article.average(:total_cost, :conditions => ["total_cost > ?", 300])
给定 total_cost 是一个方法:
total_cost = 'freelance_cost + effort * editor.hourly_rate'
Artice.sum(total_cost, :conditions => ["#{total_cost} > ?", 300], :joins => [:editor])
关于mysql - .在 ActiveRecord 中查找方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3673595/