2016-10-26 33 views
1

So stellen Sie die Bedingung ein, die gefiltert wurde: <: check. Ich benutze gem 'ransack'Wie nach Preis filtern?

<%= search_form_for @search, id: 'catalog_filter' do |f| %> 
    <%= f.search_field :check %> 
<% end %> 

Controller

def index 
    @search = Restaurant.search(params[:q]) 
    @restaurants = @search.result.where(:publish => true, :status => 1) 
end 
+1

können Sie mehr Details geben auf das, was Sie zu tun versuchen. Wo setzt du den Scheck ein und was erreicht das? –

+0

@max pleaner Ich verstehe nicht, wie man eine Bedingung in das Modell schreibt, so dass es nach allem Ausschau hält, was kleiner ist als der Wert des Feldes: check – Silentium

Antwort

0

Sie versuchen, eine dieser geben könnte

def index 
    @search = Restaurant.search(params[:q]) 
    @restaurants = @search.result.where('publish = ? AND status = ? AND value < ?', true, 1, 800) 
end 

Dies sollte herauszufiltern Werte sind, die weniger als 800

0
<%= f.search_field :check_lteq, id: 'hidden' %> 

_lteq der Suche nach dem alle <= Soll

#=> SELECT `products`.* FROM `products` WHERE (`products`.`price` <= 1000) 

_gteq Suche nach dem alle >= Soll

# => "SELECT `items`.* FROM `items` WHERE `items`.`price` >= 1000)" 
+1

Bitte einige Details hinzufügen zu Ihrer Antwort, anstatt nur Code-Snippet –

+0

zu veröffentlichen Während dieses Code-Snippet das Problem lösen kann, erklärt es nicht, warum oder wie es die Frage beantwortet. Bitte [fügen Sie eine Erklärung für Ihren Code hinzu] (// meta.stackexchange.com/q/114762/269535), da dies wirklich zur Verbesserung der Qualität Ihres Posts beiträgt. Denken Sie daran, dass Sie die Frage für Leser in der Zukunft beantworten, und diese Leute könnten die Gründe für Ihren Codevorschlag nicht kennen. ** Flaggers/Reviewer: ** [Für Code-only-Antworten wie diesen, downvote, nicht löschen!] (// meta.stackoverflow.com/a/260413/2747593) –