我有一组从表中获取的行。让我们说对象评级。获取这个对象后,我说数据库中有 100 个条目。
Rating 对象可能如下所示:
table_ratings
t.integer :num
所以我现在要做的是对这 100 行执行一些计算,而不执行任何其他查询。我可以这样做,运行一个额外的查询:
r = Rating.all
good = r.where('num = 2') # this runs an additional query
"#{good}/#{r.length}"
这是我想要做的一个非常粗略的想法,我还有其他更复杂的输出要构建。假设我需要对这些行执行超过 10 种不同的计算,因此在 sql 查询中对它们进行别名可能不是最好的主意。
替换上面的 r.where 查询的有效方法是什么?是否有 Ruby 方法或 gem 可以将类似的查询 api 提供给 ActiveRecord 关联集合对象?