На странице гема meta_search вы можете видеть, что для логических значений 'Wheres':
- is_true - это правда. Полезно для флажка типа «показывать только администраторов».
- is_false - дополнение is_true.
так что вам нужно изменить имя сгенерированного входа с 'complete_eq', чтобы оно было 'завершено_is_true' или 'завершено_is_false'.
Единственный способ, которым я нашел это, можно сделать с помощью Javascript, поскольку при просмотре кода Active Admin «Wheres» жестко кодируются для каждого типа данных.
Обычно в моем файле activeadmin.js (с использованием jQuery) есть такая строка *
$('#q_completed_eq').attr('name', 'q[completed_is_true]');
или
$('#q_completed_eq').attr('name', 'q[completed_is_false]');
Ужасный и безобразный хак, но я не нашел другого решения.
Будьте внимательны, чтобы включить это только на тех страницах, которые вам нужны.
--- НОВИНКА ДЛЯ ВЕРСИИ 0.4.2 и новее ---
Теперь Active Admin использует отдельные модули для каждого параметра: as => ... в фильтрах.
Например, вы можете поместить приведенный ниже код в файл инициализатора
module ActiveAdmin
module Inputs
class FilterCustomBooleanInput < ::Formtastic::Inputs::SelectInput
include FilterBase
def input_name
"#{@method}_is_true"
end
def input_options
super.merge(:include_blank => I18n.t('active_admin.any'))
end
def method
super.to_s.sub(/_id$/,'').to_sym
end
def extra_input_html_options
{}
end
end
end
end
и использование
:as => :custom_boolean
где вы указываете свой фильтр.