Я использую Ransack Gem и выполняю сортировку по счетчику через кеш-счетчик. Мой атрибут является целым числом.
Я вызываю это так:
<%= sort_link(@q, :people_count, "PEOPLE") %>
Результат сортировки, который я получаю:
[ЛЮДИ ASC]
1
2
0
0
[СООБЩЕНИЕ ЛЮДЕЙ]
0
0
2
1
Я хочу, чтобы PEOPLE DESC показывал:
2
1
0
0
Кто-нибудь может помочь?
---ОБНОВЛЕНИЕ-----
После более чем часа поисков я чувствую, что приближаюсь:
Сначала мне пришлось отредактировать свое представление:
От
<%= mycontact.people.count %>
to
<%= mycontact.people_count %>
Это изменило все нули на ноль.
Теперь мой вывод сортировки:
[СООБЩЕНИЕ ЛЮДЕЙ]
ноль
ноль
2
1
Затем я еще немного покопался и нашел ссылку на эту проблему на github, которая объясняет, что вы должны добавить NULLS LAST.
Поэтому я добавил следующий код в peoples_controller.rb:
@q.result.except(:order).order("#{@q.sorts.first.attr_name} #{@q.sorts.first.dir} NULLS LAST")
Сначала я был взволнован, потому что это сработало, но затем после перезапуска моего сервера я получаю следующую ошибку:
неопределенный метод `attr_name' для nil:NilClass