Ruby on rails 通过属性中的算术差异进行ActiveRecord查询?

Ruby on rails 通过属性中的算术差异进行ActiveRecord查询?,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我有一个模型,有实际金额和建议金额属性。我想找到所有差异不大于或不小于某个阈值的记录。使用ActiveRecord可以吗 目前我正在使用: all_rrs.select { |r| (r.suggested_amount - r.actual_amount)/r.suggested_amount >= 0.05 }.count 但出于性能原因,我不想使用select和某种形式的where 请注意,遗憾的是,我不太了解纯SQL,因此如果答案是它必须用纯SQL编写,那么现在可能会坚持使用se

我有一个模型,有实际金额和建议金额属性。我想找到所有差异不大于或不小于某个阈值的记录。使用ActiveRecord可以吗

目前我正在使用:

all_rrs.select { |r| (r.suggested_amount - r.actual_amount)/r.suggested_amount >= 0.05 }.count
但出于性能原因,我不想使用select和某种形式的where


请注意,遗憾的是,我不太了解纯SQL,因此如果答案是它必须用纯SQL编写,那么现在可能会坚持使用select,不管怎样,这是一个非常少见的函数。

您几乎可以将您拥有的逻辑作为关联的where子句,并且它会起作用

all_rrs.where('(table.suggested_amount - table.actual_amount) / table.suggested_amount >= 0.05')