7

我有一个 Rails 3 应用程序,其中我的模型包括所有者和属性,每个所有者代表拥有一个或多个属性的个人或机构。

我希望能够搜索我的数据库(SQLite3)并返回按所有者分组的结果。对于每个组,我想显示:

- 业主姓名(我可以轻松做到这一点) - 属于该业主的符合搜索条件的房产总数(即计数)。- 上一列中计算的所有属性的总值(即总和)。

所有者 has_many 属性和属性属于_to 所有者。此外,“值”是属性的属性。

我正在使用 MetaSearch gem,我可以让它正确返回一组属性。我也可以让它按所有者对结果进行分组,但我不知道如何显示属性的数量及其总和值。

这是返回属性列表的代码:

@search = Property.group("owner_id").search(params[:search])

我曾尝试将 .select 添加到链中,如下所示:

@search = Property.select("SUM(value) as mysum").group("owner_id").search(params[:search])

但是当我尝试时,我无法获得这笔款项。有谁知道处理这种情况的有效方法?

4

1 回答 1

14

我意识到这是旧的,但它在谷歌搜索结果中很高。

您可以简单地调用 sum。查看您的示例,以下内容大约是您要查找的内容:

Property.where(SEARCH_VALUES).group(:owner_id).sum(:value)

http://guides.rubyonrails.org/active_record_querying.html#sum

于 2012-09-03T00:19:28.040 回答