Похоже, у вас есть столбец с именем count
, а PostgreSQL интерпретирует это имя столбца как агрегатную функцию count
.Ваш SQL заканчивается следующим образом:
SELECT "recommendations".*
FROM "recommendations"
INNER JOIN "approvals" ON "approvals"."recommendation_id" = "recommendations"."id"
WHERE (approvals.count = 1 AND recommendations.user_id = 1)
Сообщение об ошибке конкретно указывает на approvals.count
:
LINE 1: ...ecommendation_id" = "recommendations"."id" WHERE (approvals....
^
Я не могу воспроизвести эту ошибку в моем PostgreSQL (9.0), номожет быть, вы используете другую версию.Попробуйте дважды заключить в кавычки имя этого столбца в вашем where
:
Recommendation.joins(:approvals).where('approvals."count" = ? AND recommendations.user_id = ?', 1, current_user.id)
Если это все уладит, я бы порекомендовал переименовать ваш столбец approvals.count
во что-то другое, чтобы вам не приходилось беспокоитьсяэто больше.