我正在为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')
然后解析我需要的东西?
感谢任何帮助。
谢谢。
答案 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