Порядок по количеству повторных записей в Rails - PullRequest
0 голосов
/ 19 сентября 2011

Я создаю приложение, в котором пользователи могут отправлять URL-адреса, и я хочу выяснить, сколько конкретных URL-адресов было отправлено на сайте в целом, а затем упорядочить их в списке, упорядоченном по количеству раз. они были отправлены.

Есть идеи? Использование Rails 3.0.6

Ответы [ 2 ]

0 голосов
/ 20 сентября 2011

Если вы разрешаете дублирование URL-адресов и предполагаете, что у вас есть класс Url с столбцом url

Url.group(:url).select("urls.*,count(*) as num").order("num desc")

Если у вас есть уникальные URL-адреса и таблица соединений между URL-адресами и пользователями (что вам следует делать):

Url.joins(:users).group("urls.id").select("urls.*, count(*) as num").order("num desc")
0 голосов
/ 19 сентября 2011

если я хорошо понимаю, вы хотите отслеживать все ссылки, предоставленные пользователями через форму.

Вы можете использовать таблицу submit_urls с двумя столбцами: «url» (с индексом и ограничением уникальности) и «count» (с индексом).

При отправке новой ссылки ваш контроллер должен проверить, существует ли URL в таблице; если нет, создайте его, иначе увеличьте счетчик, связанный с этим URL.

перечислить ваши ссылки теперь так же просто, как запросить эту таблицу с помощью предложения order ('count DESC'), а подсчет общего количества ссылок - всего лишь вопрос count ().

если я не совсем понял, это означает, что вы хотите внедрить какую-то аналитическую панель для своего сайта; почему бы тогда не использовать Google Analytics ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...