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