2010-04-24 5 views
1

점점 오류 :ROR Heroku가 포스트 그레스 문제

ActiveRecord::StatementInvalid (PGError: ERROR: argument of HAVING must be type boolean, not type timestamp without time zone 

컨트롤러 코드 :

def inactive 
    @number_days = params[:days].to_i || 90 
    @clients = Client.find(:all, 
     :include => :appointments, 
     :conditions => ["clients.user_id = ? AND appointments.start_time <= ?", current_user.id, @number_days.days.ago], 
     :group => 'client_id', 
     :having => 'MAX(appointments.start_time)' 
    ) 
    end 


:having => ['MAX(appointments.start_time) <= ?', @number_days.days.ago]

:having => 'MAX(appointments.start_time)'
을 변경하고 현재 오류가 있습니다 :

+0

난 당신이 BY 절 HAVING 및 GROUP, SQL의 WHERE에 브러시 좋습니다. http://www.w3schools.com/sql/sql_having.asp. 이것은 Rails 문제가 아닙니다. – JRL

+0

그래, 그 postgres 확실히 엄격한 다음 sqlite 건, 그냥 솔루션을 찾으려고 노력 .... 아직 학습 – sysconfig

답변

4

:having 절에는 부울로 평가되는 SQL 코드 조각이 필요합니다. 그룹 => 'CLIENT_ID': MAX(appointments.start_time)는 타임 스탬프

0

변화로 평가 그룹 => 'table_name.client_id'