Как найти сообщение, содержащее более одного комментария в запросе rails? - PullRequest
0 голосов
/ 05 февраля 2019
class Post
 has_many :comments
end

class Comment
 belongs_to :post
end

Как найти сообщение, содержащее более одного комментария в запросе rails?

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Самый элегантный способ - использовать rails counter-cache

Первое, что вам нужно сделать, это добавить столбец comments_count в модель Post и добавить следующее в Comment модель,

belongs_to :post, :counter_cache => true

Таким образом, вы можете получить посты с комментариями больше 1, как показано ниже,

Post.where('comments_count > ?', 1)

Это rail-ish способ реализации.

0 голосов
/ 05 февраля 2019

Ниже должен работать запрос

Post.joins(:comments).group('posts.id').having('count(comments.id) > ?', 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...