Rails 3.1 - найти с помощью count и выбрать как - PullRequest
8 голосов
/ 08 ноября 2011

Я пытаюсь сделать следующий SQL-оператор в рельсах:

SELECT COUNT(downloads.title) AS total, downloads.title FROM `downloads` WHERE `downloads`.`member_id` = 60 Group by `downloads`.`title`

Я написал это в рельсах так:

Download.where(:member_id => id).select("COUNT(downloads.title) AS total, downloads.title").group(:title)

Если я запускаю запрос прямо с сервера sql, sql выполняется правильно, но если я запускаю версию activerecord, я получаю только заголовок обратно.

Я думал, что это может быть из-за attr_accessible, но, похоже, это не имеет значения.

есть идеи?

1 Ответ

16 голосов
/ 08 ноября 2011

Вы пытались вызвать метод total для объекта коллекции?
Эта информация не включена в вывод для объекта с использованием метода to_s, так что вы, вероятно, просто не видите его, но общее значение есть.

downloads = Download.where(:member_id => id).select("COUNT(downloads.title) AS total, downloads.title").group(:title)
downloads.first.total
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...