Как использовать в ARel такие функции, как CONCAT () и т. Д.

Есть ли способ, чтобы 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`"

Спасибо!

8
задан Community 23 May 2017 в 12:26
поделиться