如何在Rails中隔离/检索/计算返回记录的子集

时间:2010-06-30 15:23:37

标签: ruby-on-rails activerecord subset

我正在为rails应用程序编写报告仪表板。仪表板用于用户数据,目前它正在运行多个计数选择查询以在页面上构建四个或五个报告。我确信有一种更有效的方法可以做到这一点。我如何构建控制器方法以便它只运行一个查询,然后解析/细分各个报告所需的子集?

例如,用户具有性别,年龄和收入范围。而不是做

@men = User.count(:conditions => ['gender = ?', 'm']
@women = User.count(:conditions => ['gender = ?', 'f']
@age = User.count(:conditions => ['age_range = ?', 1]
etc.

我可以做一个

吗?
User.find(:all, :select => 'id,gender,age_range,income_range')

然后解析我需要的东西?

感谢任何帮助。

谢谢。

1 个答案:

答案 0 :(得分:3)

我相信你可以做到这一点

@users = User.all

@men = @users.select{|u| u.gender == 'm'}.size
@women = @users.select{|u| u.gender == 'f'}.size
@age = @users.select{|u| u.age_range == 1}.size