Подтвердить что ты не робот

Как фильтровать булевский столбец в ActiveAdmin?

Этот вопрос связан с ActiveAdmin gem. Я пытаюсь отфильтровать столбец с булевым типом, но без успеха: filter :column_name и filter :column_name, :as => :boolean не работают.

Любая идея?

Спасибо!

4b9b3361

Ответ 1

filter :column_name, :as => :select создаст выпадающий список со значениями "Любой", "Истинный", "Ложный"

Ответ 2

Начиная с ActiveAdmin 0.6.2, использование filter :column_name, as: :select теперь имеет ужасный побочный эффект при выполнении полного сканирования таблицы. Кроме того, его параметры теперь "Любые", "Истина", "ложь".

Например, если у меня есть модель District с булевым столбцом enabled, то filter :enabled, as: :select генерирует запрос SELECT DISTINCT "districts"."enabled" FROM "districts" ORDER BY enabled asc, чтобы получить 3 значения. Таблица моих районов довольно велика, так что это явно не то, что я хочу.

OTOH, но теперь я могу использовать filter :column_name, as: :boolean, он использует флажок, который по умолчанию не проверяется, что опять не то, что я хочу.

Чтобы восстановить поведение до 0.6.2, я должен был сделать это: filter :enabled, as: :select, collection: [["Yes", true], ["No", false]]. ActiveAdmin меняет значение "Any".