Я работаю над рельсами 4.2.5.1, где я использую настраиваемую область:
scope :listing_search_cities, ->{group(:city).count}
Я использовал эту область для создания граней и фильтров. Все отлично работало на MYSQL. Когда я подтолкнул это к Heroku, из-за PG я получил сообщение об ошибке, которое created_at должно быть добавлено к групповой функции.
Я сделал это, ошибка исчезла, и теперь мой объем:
scope :listing_search_cities, -> {group('city, created_at').count}
Тем не менее, это дает хэш created_at время и рассчитывать как:
{2018-10-10....UTC => 2}
а не название города и количество, которое я хочу (и запрос дает это в MYSQL), как
{ "tempe" => 2}
Я просто хочу название города и количество этого выбора (результаты поиска), которые я предоставляю в области.
Как я могу сделать это в PG, где в результате поиска в списках я могу получить названия городов и подсчет каждого города в хеше с помощью группы и подсчета?
Я читал в других местах о людях, использующих нераспространение? Как это использовать?
Не берите в голову! Для тех, кто сталкивается с одной и той же проблемой: просто измените порядок группы:
scope :listing_search_cities, -> {group('created_at, city').count}
и вам хорошо идти.