ROR heroku PostGres выпуск - PullRequest
       15

ROR heroku PostGres выпуск

1 голос
/ 24 апреля 2010

Получение ошибки:

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)'
до
:having => ['MAX(appointments.start_time) <= ?', @number_days.days.ago]
и теперь ошибка:
ActiveRecord::StatementInvalid (PGError: ERROR: column "clients.id" must appear in the GROUP BY clause or be used in an aggregate function

Ответы [ 2 ]

4 голосов
/ 24 апреля 2010

Для условия :having требуется фрагмент SQL, который оценивается как логическое значение. MAX(appointments.start_time) оценивает метку времени

0 голосов
/ 26 апреля 2010

изменить: group => 'client_id' на: group => 'table_name.client_id'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...