1

我正在为 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')

然后解析出我需要什么?

任何帮助表示赞赏。

谢谢你。

4

1 回答 1

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
于 2010-06-30T16:12:17.587 回答