【问题标题】:Rails 3 and arel custom functionsRails 3 和 arel 自定义函数
【发布时间】:2012-03-28 17:45:14
【问题描述】:

如何在 arel 上调用自定义 sql 函数? 我的意思是:我们可以这样做: arel_table[:c].sum.as('summarizing')

我怎么能这样做: arel_table[:created_at].date_format('%Y-%m-%d').as('something')?

【问题讨论】:

    标签: ruby-on-rails-3 arel


    【解决方案1】:

    只有少数几个预定义的函数,例如 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" 
    

    希望对你有所帮助,干杯

    【讨论】:

      猜你喜欢
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-18
      • 1970-01-01
      相关资源
      最近更新 更多