Есть ли способ, чтобы ARel
записал (продезинфицировал, возможно псевдонимы и т. д.) имен столбцов в CONCAT ()
и другие функции SQL?
Вот , как это сделать с помощью AVG () ...
?> name = Arel::Attribute.new(Arel::Table.new(:countries), :name)
=> # population = Arel::Attribute.new(Arel::Table.new(:countries), :population)
=> # Country.select([name, population.average]).to_sql
=> "SELECT `countries`.`name`, AVG(`countries`.`population`) AS avg_id FROM `countries`"
(да, я знайте, что avg_id
будет одинаковым в каждой строке, просто пытаюсь проиллюстрировать свой вопрос)
Так что, если мне нужна другая функция?
?> Country.select(xyz).to_sql # Arel::Concat.new(name, population) or something?
=> "SELECT CONCAT(`countries`.`name`, ' ', `countries`.`population`) AS concat_id FROM `countries`"
Спасибо!