2012-12-10 13 views

Odpowiedz

18

Można to zrobić poprzez zdefiniowanie 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:

w niektórych przypadkach trzeba ustawić filtr jeżeli params [: P] jest pusta lub params [: zakres] Puste

więc to może działać lepiej

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

Działa jak urok. Dziękuję Fivell! – TonyTakeshi

+0

zawsze mile widziane!) – Fivell

+1

Powinno to nastąpić w bloku kontrolera wewnątrz pliku app/admin/model.rb. na przykład kontroler nie before_filter ... koniec –

4

Dopasowana odpowiedź Fivells do poprawnego działania z zakresami i pobraniami. Czuje się hacky, ale wydaje się, że wykonuje to zadanie. Komentarze w komentarzu.

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 
Powiązane problemy