Фильтр по количеству детей, использующих Rails 3 - PullRequest
4 голосов
/ 20 октября 2010

Я бы хотел выбрать посты с одним или несколькими комментариями, используя Rails 3 и один запрос.

Я пытаюсь что-то вроде этого:

Post.includes(:comments).where('count(comments.id)>0')

Однако я получаю эту ошибку:

ActiveRecord::StatementInvalid: PGError: ERROR:  aggregates not allowed in WHERE clause

Я гуглил этот и подобные подходы, группировку и т. Д. Без удачи. Любая помощь будет оценена.

1 Ответ

1 голос
/ 29 декабря 2010

Я уверен, что вы, возможно, уже поняли это, но я верю, что вы ищете, чтобы имел (: условия) отношения, Хосе.

Post.includes(:comments).having(:conditions => "count(comments.id) > 0")

Я не тестировал этот код, поэтому, пожалуйста, возьмите его с крошкой соли, но вы наверняка сможете начать с этого.

...