Ich benutze das 'binaloglogic-searchlogic' Juwel in Version 2.3.5 zusammen mit Rails 2.3.4.Rails: searchlogic Suche mit oder Bedingungen
Was ich tun möchte, ist die Suche nach einem Modell für einen bestimmten Wert über mehrere Attribute. Dies erreiche ich mag alles zusammen
User.first_name_or_last_name_or_email_like(value)
durch Verkettungs Aber mit immer mehr Attribute in dieser Suche ist dies jedoch häufig hässlich sein. Stattdessen würde Ich mag den Suchmechanismus von searchlogic wie folgt verwenden:
search = User.search
search.first_name_like = value
search.last_name_like = value
..
@users = search.all
Das ist also der Weg über die Suche und - aber was ich will ist oder. Ich habe zwei Möglichkeiten gefunden, dies zu erreichen, aber beide funktionieren nicht.
1. one: prepend eine or_ der Bedingung
search = User.search
search.first_name_like = value
search.or_last_name_like = value
@users = search.all
Das bin ich The or_last_name_like is not a valid condition. You may only use conditions that map to a named scope
2. gibt man: verwenden search.any
search = User.search
search.first_name_like = value
search.last_name_like = value
@users = search.any
gibt mir undefined method
‚jeder für #`.
Irgendeine Idee ist das? Vernachlässige ich den richtigen Punkt der Readme?
Vielen Dank für Ihre Hilfe!
edit: Zeit für einige hässliche Abhilfe:
search = User.search
search.first_name_like = value
search.last_name_like = value
User.find(:all, :conditions => search.scope(:find).gsub('AND','OR'))
Works ist aber sicherlich nicht der richtige Weg zu gehen, ist es nicht?
+1 Nach einem kurzen Blick, stimme ich dieser Antwort zu. Zur Bestätigung können Sie die Searchlogic Mailingliste fragen. –