Ich bin mir bewusst, dass ich Anfragen durch den Aufruf where()
auf einem Modell wie folgt suchen: Post.where(:title => 'My First Post')
Wie führe ich eine Suche in Rails3 durch?
Was aber, wenn ich weiß nicht, ob der Benutzer die Suchparameter herausfiltern will? Zum Beispiel habe ich ein Suchformular mit einem optionalen title
Feld. Wenn der Titel ausgefüllt ist, sollte das Formular nach einem Titel suchen. Wenn dies nicht der Fall ist, sollte das Formular nur alle Felder zurückgeben.
Ich habe versucht, etwas entlang der Linien von
tunsearch = Post.all
if params[:title].present?
search.where(:title => params[:title])
end
jedoch Rails immidiately gibt das Ergebnis der Suche, wenn ich Post.All anrufen und ich kann nicht weitere Bedingungen hinzufügen/
Wie kann ich tun Dies?
Danke!
Wie würde ich dann die Ressource bekommen, ohne die Felder abzurufen, damit ich weiter Bedingungen aufrufen kann? Vielen Dank! –
Eine Option besteht darin, 'search = Post.unscoped' oder' search = Post.scoped' zu setzen, wodurch Sie eine arel-Relation erhalten, mit der Sie spielen können. Alternativ können Sie die Art und Weise, in der Sie bereichsabhängig neue Bereiche hinzufügen, überdenken und versuchen, sich im Modell besser damit zu befassen. – idlefingers