2012-03-12 2 views
1

어떻게 arel에서 커스텀 SQL 함수를 호출 할 수 있습니까? 는 말은 무엇 : arel_table [: C] .sum.as ('요약하는')레일 3과 arel 커스텀 함수

어떻게 그렇게 할 수 있습니다 : arel_table [: created_at] .date_format를 ('% Y- %의 m 우리가 할 수 있습니다 - % 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" 

나는이 어떻게 든 당신을 도울 것입니다 희망, 환호

관련 문제