2013-05-13 2 views
0

В моем приложении я должен получить последние два последних комментария из модели комментариев для модели Post, как и Facebook.ROR + Получить последние или последние два комментария для каждого сообщения

Для каждого сообщения может быть комментарий или нет. Например: -

Post 1 having 10 comments. 
Post 2 having 5 comments. 
Post 3 have no comments. 
Post 5 have 20 comments. 

Теперь я не получаю способ найти последние два комментария для каждого сообщения и общего количества комментариев относительно этой должности. Может ли кто-нибудь предложить, как это решить. Потому что у меня есть подход в моем уме, который очень худший, что, уволяя каждый цикл за сообщение и находить последние/последние 2 комментария.

Заранее спасибо. Надеемся на лучший подход/метод.

ответ

0

Наивный подход: Предположим, что каждый пост имеет has_many: отношения комментарии, вы могли бы попробовать:

comments = post.comments 
total_comments = comments.count 
last_two_comments = comments.last(2) 

, который даст вам два последних комментарии для почтового объекта. Это будет загружать все комментарии для каждого сообщения, поэтому, возможно, не идеальная производительность. В качестве альтернативы вы можете сделать запрос для комментариев, где post_id равно заданному post_id.

Что-то вроде:

Comment.where(post_id: post.id).limit(2).order("id DESC") 
Смежные вопросы