Задайте стойността по подразбиране на филтъра ActiveAdmin

Имам прост филтър в ActiveAdmin за булева стойност. Изглежда така

filter :invisible, as: :select

Можете да изберете „всяко“, „вярно“ или „фалшиво“ и това работи добре. Но стойността по подразбиране на филтъра е "any", докато аз трябва да го задам на "true". Как мога да го направя? Благодаря ти.


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 action: :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