Как ограничить количество записей в ленте? - PullRequest
2 голосов
/ 06 февраля 2012

Быстрый вопрос, я считаю, что на это можно легко ответить.У меня есть эта строка кода в моем PagesController, которая показывает все сообщения, относящиеся к пользователю:

@microfeed_items = Micropost.find_all_by_user_id(current_user.id)

Есть ли что-то, что я могу добавить к этой строке кода, так что, скажем, отображаются только 5 последних сообщений?

Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 06 февраля 2012

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

@microfeed_items = Micropost.where(:user_id => current_user.id).limit(5).order("created_at DESC")

Посмотрите руководство Rails по запросам ActiveRecord для получения дополнительной информации: http://guides.rubyonrails.org/active_record_querying.html#limit-and-offset

0 голосов
/ 06 февраля 2012

Если вы правильно настроили отношения между User и Micropost, вы сможете использовать current_user.microposts.Затем вы можете использовать метод last, чтобы вернуть последние 5 сообщений:

@microfeed_items = current_user.microposts.last(5)
...