2011-01-15 4 views
0

쿼리를 실행하기 위해 조건 해시를 작성 중이지만 하나의 특정 사례에 문제가 있습니다. conditions2 = [ '(year from signature_date) =?', params [ : year] .to_i] params [: year] .blank가 아닌 한?조건 해시에서 함수 사용

conditions[:country_id] = COUNTRIES.select{|c| c.geography_id == params[:geographies]} unless params[:geographies].blank? 
conditions[:category_id] = CATEGORY_CHILDREN[params[:categories].to_i] unless params[:categories].blank? 
conditions[:country_id] = params[:countries] unless params[:countries].blank? 
conditions['extract(year from signature_date)'] = params[:year].to_i unless params[:year].blank? 

그러나 다음과 같이 해석됩니다으로 마지막 줄은 모든 것을 나누기 : "negotiations"." 내 조건에 앞에 추가되는 것을 방지 할 수있는 방법이

AND ("negotiations"."extract(year from signature_date)" = 2010 

있습니까?

이런 식으로 뭔가를 들어, P.

답변

0

감사합니다, 당신은 아마 find_by_sql하여 자신의 SQL을 작성해야합니다. 모델의 친구가 멋지게 액세스 할 수 있도록 모델의 메소드에 포장하십시오.

+0

나는 그것이 유일한 방법이라고 생각한다. 고맙습니다 – Pierre