2012-12-10 10 views

Antwort

18

Sie können es durch die Definition 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:

in einigen Fällen Sie Filter festlegen müssen, wenn params [: q] leer oder params ist [: scope] leer

so könnte dies besser funktionieren

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 
+0

Es funktioniert wie ein Charme. Danke Fivell! – TonyTakeshi

+0

immer willkommen!) – Fivell

+1

Dies sollte in einem Controller-Block in der app/admin/model.rb Datei gehen. z.B. Controller do before_filter ... Ende –

4

Adapted Fivells antworten, um mit Scopes und Downloads korrekt zu funktionieren. Fühlt sich hacky an, scheint aber den Job zu machen. Kommentierte Absicht in Kommentaren.

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 
Verwandte Themen