Строковый фильтр по умолчанию в ActiveAdmin имеет следующие параметры:
- Содержит
- Равно
- Начинается с
- Заканчивается на
Это показывает раскрывающийся список рядом с строковым поиском, где вы можете выбрать эти параметры.
Мое требование состоит в том, чтобы фильтр для использования содержал условие поиска, НО не отображал раскрывающийся список / выбор для этого. Таким образом, у него будет просто поле ввода для поиска, без выбора для выбора.
Первоначально я добился этого, создав партиал, но это было проблематично, поскольку тогда он не мог работать с другими фильтрами, которые предоставляет ActiveAdmin. Вот изображение частичного:
Моя текущая мысль состоит в том, чтобы создать собственный фильтр, который делает это.
Итак, ниже приведен стандартный код строкового фильтра в ActiveAdmin. Как это можно изменить по умолчанию, чтобы оно содержало и не отображало раскрывающийся список? Я попытался удалить параметры фильтра, но это не сработало. Есть идеи?
ActiveAdmin использует Ransack и Formtastic
module ActiveAdmin
module Inputs
class FilterStringInput < ::Formtastic::Inputs::StringInput
include FilterBase
include FilterBase::SearchMethodSelect
filter :contains, :equals, :starts_with, :ends_with
# If the filter method includes a search condition, build a normal string search field.
# Else, build a search field with a companion dropdown to choose a search condition from.
def to_html
if seems_searchable?
input_wrapping do
label_html <<
builder.text_field(method, input_html_options)
end
else
super # SearchMethodSelect#to_html
end
end
end
end
end