Unión de rieles hack, cómo reunir dos consultas diferentes
Tengo una consulta que busca dos campos separados en la misma tabla ... buscando ubicaciones que probablemente sean una ciudad específica, pero también podría ser un país ... es decir, la necesidad de dos campos.
La mesa se ve como:
Country City
Germany Aachen
USA Amarillo
USA Austin
Resultado:
Keyword Sideinfo
Aachen Germany
USA Country
Austin USA
Germany Country
Básicamente, me pregunto si hay una forma más concisa de hacer esto porque tuve que usar dos consultas separadas y luego agregarlas, ordenarlas, etc. (que funciona 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
No pude encontrar ninguna información sobre cómo hacer uniones usando ActiveRecord ...