Установить значение фильтра ActiveAdmin по умолчанию

У меня есть простой фильтр в ActiveAdmin для логического значения. Это выглядит так

filter :invisible, as: :select

Вы можете выбрать «любой», «истинный» или «ложный», и он отлично работает. Но значение фильтра по умолчанию — «любой», а мне нужно установить его на «истина». Как мне это сделать? Спасибо.


person enjaku    schedule 20.06.2014    source источник


Ответы (2)


попробуйте что-нибудь вроде этого:

filter : invisible, as: :select, collection: [["Yes", true], ["No", false]]

Это отлично работает для меня.

Очевидно, вы можете редактировать строку "Yes" - "No" по своему усмотрению.

person CristianOrellanaBak    schedule 20.06.2014

Я нашел ответ. Вы должны использовать before_filter, так что это так же просто, как

controller do
  before_filter invisible: :index do
    params[:q] = {invisible_eq: true} if params[:commit].blank?
  end
end
person enjaku    schedule 20.06.2014
comment
Как насчет такого действия redirect_to: :index, q: {invisible_eq: true}, commit: Filter params[:commit].blank? Таким образом, URL-адрес отражает ваш фильтр - person katzmopolitan; 12.08.2014
comment
У вас опечатка, должно быть before_filter only: :index do - person Petr Bela; 10.10.2014