hack união de trilhos, como puxar duas consultas diferentes juntos

Eu tenho uma consulta que pesquisa dois campos separados na mesma tabela ... procurando por locais que provavelmente são uma cidade específica, mas também pode ser um país ... ou seja, a necessidade de dois campos.

Tabela parece com:

Country    City

Germany    Aachen
USA        Amarillo
USA        Austin

Resultado:

Keyword   Sideinfo

Aachen    Germany
USA       Country
Austin    USA
Germany   Country 

Basicamente eu estou querendo saber se existe uma maneira mais concisa de fazer isso, porque eu tive que usar duas consultas separadas, em seguida, juntá-las, classificá-las, etc. (o que funciona bem):

  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

Eu não consegui encontrar nenhuma informação sobre como uniões usando o ActiveRecord ...

questionAnswers(4)

yourAnswerToTheQuestion