rails union hack, как объединить два разных запроса
У меня есть запрос, который ищет два отдельных поля в одной таблице ... ищет местоположения, которые, скорее всего, являются конкретным городом, но также могут быть страной ... т.е. необходимость двух полей.
Таблица выглядит так:
Country City
Germany Aachen
USA Amarillo
USA Austin
Результат:
Keyword Sideinfo
Aachen Germany
USA Country
Austin USA
Germany Country
В основном яМне интересно, есть ли более краткий способ сделать это, потому что мне пришлось использовать два отдельных запроса, затем сложить их вместе, отсортировать их и т. д. (который работает нормально):
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
Я не могнайти информацию о том, как объединить с помощью ActiveRecord ...