2012-03-12 77 views
1

我怎麼能在arel上調用自定義sql函數? 我的意思:我們可以這樣做: arel_table [:C] .sum.as( '總結')Rails 3和arel自定義函數

我怎麼可以這樣做: arel_table [:created_at] .date_format(「%Y-%M - %d的東西') ')爲('?

回答

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" 

我希望這將幫助你以某種方式,歡呼聲