如何在arel上调用自定义sql函数? 我的意思是:我们可以这样做: arel_table [:C] .sum.as( '总结')
我怎么能这样做: arel_table [:created_at]。?.date_format( '%Y-%间 - %d')为( '东西')
答案 0 :(得分:5)
只有很少的函数是预定义的,如sum,count,average,minimum等。 如果你想使用自定义的东西,我相信你应该使用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"
我希望这会以某种方式帮助你,欢呼