J'ai une requête qui recherche deux champs distincts dans le même tableau ... à la recherche d'emplacements qui sont probablement une ville spécifique, mais qui pourraient également être un pays ... c'est-à-dire le besoin de deux champs.rails union hack, comment regrouper deux requêtes différentes
Table ressemble:
Country City
Germany Aachen
USA Amarillo
USA Austin
Résultat:
Keyword Sideinfo
Aachen Germany
USA Country
Austin USA
Germany Country
En fait, je me demande s'il y a une façon de faire plus concis parce que je devais utiliser deux requêtes distinctes puis les ajouter ensemble, les trier, etc (qui fonctionne bien):
def self.ajax(search)
countries = Location.find(:all, :select=> 'country AS keyword, "Country" AS sideinfo', :joins => :hotels, :conditions => [ 'hotels.email IS NOT NULL AND country LIKE ?', "#{search}%" ], :group => :country)
cities = Location.find(:all, :select=> 'city AS keyword, country AS sideinfo', :joins => :hotels, :conditions => [ 'hotels.email IS NOT NULL AND city LIKE ?', "#{search}%" ], :group => :city)
out = cities + countries
out = out.sort { |a,b| a.keyword <=> b.keyword }
out.first(8)
end
Je n'ai trouvé aucune information sur la façon de unions utilisant ActiveRecord ...
Cette question dis cusses façons d'utiliser ou de fausses unions dans ActiveRecord: http://stackoverflow.com/questions/6686920/activerecord-query-union –