У меня есть область, которая объединяет пользователей в сообщения, чтобы получать только пользователей, которые имеют видимые сообщения.Это работает в MySQL, но PG намного строже и выдает ошибку.
Модель пользователя:
belongs_to :account
scope :have_posts, joins(:posts).where('posts.visible => true').group('users.id')
Контроллер:
@account.users.have_posts.each do |user|
# do stuff
end
Ошибка:
(PGError: ERROR: столбец "users.account_id" должен присутствовать в предложении GROUP BY или использоваться в статистической функции: ВЫБРАТЬ "users". * ИЗ "users" INNER JOIN "posts" ON"posts". "user_id" = "users". "id" WHERE ("users" .account_id = 1) AND (examples.approved = true) GROUP BY users.id)
Жалуетсяо "users.account_id", который вызывается @account.users
(поскольку я, очевидно, не хочу, чтобы все пользователи в БД).
Есть идеи, как это исправить?