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

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

Хотелось бы узнать, возможно ли иметь фильтр со значением по умолчанию с активным администратором? Это будет полезно для предварительной загрузки данных для пользователя admin.

filter  :country, :default=>'US'
4b9b3361

Ответ 1

Вы можете сделать это, указав before_filter

  before_filter :only => [:index] do
    if params['commit'].blank?
       #country_contains or country_eq .. or depending of your filter type
       params['q'] = {:country_eq => 'US'} 
    end
  end

UPD:

в некоторых случаях вам нужно установить фильтр, если params [: q] пуст или params [: scope] empty

так что это может работать лучше

  before_filter :only => [:index] do
    if params['commit'].blank? && params['q'].blank? && params[:scope].blank?
       #country_contains or country_eq .. or depending of your filter type
       params['q'] = {:country_eq => 'US'} 
    end
  end

Ответ 2

Адаптированные Fivells отвечают за правильную работу с областями и загрузками. Чувствует себя взломанным, но, похоже, выполняет эту работу. Аннотированное намерение в комментариях.

  before_filter only: :index do
    # when arriving through top navigation
    if params.keys == ["controller", "action"]
      extra_params = {"q" => {"country_eq" => "US"}}

      # make sure data is filtered and filters show correctly
      params.merge! extra_params

      # make sure downloads and scopes use the default filter
      request.query_parameters.merge! extra_params
    end
  end