Ich arbeite an einer Fahrgemeinschaftsanwendung, in der Personen nach Aufzügen suchen können. Sie sollten in der Lage sein, die Stadt auszuwählen, aus der sie gerne abgeholt werden möchten, und einen Radius auswählen, der dann die Städte in Reichweite zur Abfrage hinzufügt. Wie auch immer es so weit ist ist, dass ich nur eine Reihe von "AND"
Bedingungen zusammen ketten kann, wo es richtig wäre zu sagen "WHERE start_city = city_from OR start_city = a_city_in_range OR start_city = another_city_in_range"
Dynamische "ODER" -Bedingungen in Rails 3
Weiß jemand, wie man dies erreichen kann? Vielen Dank im Voraus.
class Search < ActiveRecord::Base
def find_lifts
scope = Lift.where('city_from_id = ?', self.city_from)
#returns id of cities which are in range of given radius
@cities_in_range_from = City.location_ids_in_range(self.city_from, self.radius_from)
#adds where condition based on cities in range
for city in @cities_in_range_from
scope = scope.where('city_from_id = ?', city)
#something like scope.or('city_from_id = ?', city) would be nice..
end
end
Wont diese Art der Suche sterben auf mehreren parallelen Anfragen, wenn Sie live gehen? Wenn Sie eine lineare Suche nach 10-12 Parametern in jeder Zeile durchführen? Es wird ein Albtraum für den Systemadministrator sein, eine komplexe Datenbank mit Webserver-Topologie zu verwalten. – Siddharth