есть только несколько предопределенных функций, таких как сумма, число, среднее, минимальное и т. Д. Если вы хотите использовать что-то свое, я считаю, что вы должны использовать Arel :: Nodes :: NamedFunction и функции, специфичные для базы данных.Например, для PostgreSQL это может выглядеть примерно так:
t = Country.arel_table
func = Arel::Nodes::NamedFunction.new("to_char", [ t[:created_at], "YYYY-MM-DD"]).as("pretty_date")
query = t.project(func)
query.to_sql # => SELECT to_char("countries"."created_at", 'YYYY-MM-DD') AS pretty_date FROM "countries"
Надеюсь, это вам как-то поможет, ура