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

然后解析我需要什么?

任何帮助都将受到赞赏。

谢谢你。

有帮助吗?

解决方案

我相信你可以做到这一点

@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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top