Как изолировать / извлекать / считать подмножество возвращенных записей в рельсах
-
01-10-2019 - |
Вопрос
Я пишу приборную панель отчетов для приложения Rails. Приборная панель предназначена для пользовательских данных, и в настоящее время он работает несколько подсчета Select queries для создания четырех или пяти отчетов на странице. Я уверен, что есть более эффективный способ сделать это. Как бы я пошел по структурированию метода контроллера, чтобы он запускал только один запрос, а затем разрабатывает / подразделяет подсуды, необходимые для отдельных отчетов?
Например, пользователь имеет пол, возраст и ассортимент доходов. Вместо того, чтобы сделать
@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
Не связан с StackOverflow