我有一个Rails 3应用程序,其中我的模型包括所有者和属性,每个所有者代表拥有一个或多个属性的个人或机构。
我希望能够搜索我的数据库(SQLite3)并返回由所有者分组的结果。对于每个组,我想显示:
-所有者的名字(我可以很容易地做到这一点)-属于该所有者且满足搜索条件的属性的总数(即计数)。-前一列中计算的所有属性的总价值(即总和)。
Owner has_many Properties和Property belongs_to Owner。另外,"value"是Property的一个属性。
我正在使用MetaSearch gem,我可以让它正确返回属性集合。我也可以让它按所有者对结果进行分组,但是我不知道如何显示属性的数量和它们的总价值。
下面是返回属性列表的代码:@search = Property.group("owner_id").search(params[:search])
我已经尝试添加一个。select链,像这样:
@search = Property.select("SUM(value) as mysum").group("owner_id").search(params[:search])
但是当我尝试时,我无法访问这个总和。有人知道处理这种情况的有效方法吗?
我知道这是旧的,但它在谷歌搜索结果中排名很高。
你可以简单地调用sum。看看您的示例,下面是您正在寻找的内容:
Property.where(SEARCH_VALUES).group(:owner_id).sum(:value)
http://guides.rubyonrails.org/active_record_querying.html
和