У меня есть отношение HABTM между моделями Theme
и Quote
. В окне themes
index
отображается количество котировок, связанных с каждой темой. Я бы хотел добавить Ransack sort_link
в эту колонку, так что themes
можно сортировать по их числу связанных quotes
.Ransack сортировать по количеству записей HABTM или HMT
Я успешно это сделал с ассоциациями has_many
, использующими столбец кеша-счетчика, но Rails не поддерживает столбцы счетчика кеша для ассоциаций HABTM.
До сих пор у меня есть объем, который добавляет виртуальный атрибут quotes_count
(путем выполнения одного запроса, избегая N + 1) в Theme
модели:
scope :with_quotes_count, -> do
joins('LEFT OUTER JOIN quotes_themes on quotes_themes.theme_id = themes.id')
.select('themes.*, COUNT(quotes_themes.quote_id) as quotes_count')
.group('themes.id')
end
Кажется, что я должен преобразовать вышеупомянутый объем в «Ransacker» с использованием ARel, но до сих пор все мои попытки потерпели неудачу.
Я использую Rails 4.2.2, ARel 6.0.4 и PostgreSQL 9.5.4.
Любая помощь будет принята с благодарностью.
Я не уверен, что вы можете сортировать сортировку с областями. Я всегда делал это с обертками Ареля. – Sash