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 ...

Respuestas a la pregunta(4)

Su respuesta a la pregunta