I have the following query which I want to use with ActiveRecord so that it can be translated in native ORACLE based query on production server. Right now I am using SQLITe.
As long as I know, there's no group_concat
equivalent in Rails, but you can use includes
to do that:
continents = Continents
.joins(:countries, :event_locations)
.includes(:countries)
.group("continents.code")
continents.each do |continent|
continent.countries.join(",")
end
This will produce only 2 queries - I know, is not so good as one, but I think that is the best than Rails can do without "group_concat". The other way will be something like that:
Country
.select("countries.id, GROUP_CONCAT(countries.name)as grouped_name")
.joins(:continents, :event_locations)
.group("continents.code")
But if you do that, you need to change according to your database vendor.