2012-03-12 13 views
1

arelでカスタムsql関数を呼び出すにはどうすればよいですか? 私が何を意味するか:私たちはそうすることができます。 arel_table [:C] .sum.as( 'まとめ')Rails 3およびarelカスタム関数

は、どのように私はそうすることができます: arel_table [:のcreated_at] .date_format( '%Y-%メートルを - %d ')。as(' something ')?

答えて

5

sum、count、average、minimumなどのようにあらかじめ定義されている関数はごくわずかです。 カスタムを使用する場合は、Arel :: Nodes :: NamedFunctionとデータベース固有の関数を使用する必要があります。例えばPostgreSQLのためには、このようなSTHのようになります。

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" 

私は歓声

、これは何とかあなたを助けることを願っています
関連する問題