mysql - .在 ActiveRecord 中查找方法

标签 mysql ruby activerecord find

我正在使用 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/

相关文章:

c# - 检查 Case Statement 字段是正数还是负数 Sql

ruby-on-rails - 未初始化的常量 Twilio::Rest Rails

mysql - 是否应该始终将主键添加到 innodb 表中?

c# - 在 mysql 填充的组合框顶部添加 "---OTHERS---"

php - Laravel mysql并发数据选择和更新

javascript - 是否有与 Ruby 的 andand 等效的 Javascript?

ruby-on-rails - Ruby - 转义括号

Mysql2::Error: 指定的键太长;对于只有 87 个 db 字段的表,最大 key 长度为 767 字节

ruby-on-rails - rails 4 URI 域错误参数

ruby-on-rails - ActiveRecord 用户提供的列名