Rails: нумерация комментариев под микросообщением - PullRequest
0 голосов
/ 29 февраля 2012

У меня есть модель комментария под микросообщением. Мне было интересно, могу ли я разбить это на страницы так, чтобы 50 комментариев не отображались сразу после нажатия кнопки комментария на микросообщении. Я почти уверен, что это не может быть разбито на страницы, но есть ли способ, который, как и в Facebook, показывает только определенное количество, а затем пользователь может показать больше, если пожелает. В настоящее время мой код выглядит так:

Микросообщение HTML для раздела комментариев

<div id='CommentContainer-<%= micropost.id%>' class='CommentContainer Condensed2'>
<div class='Comment'>
<%= render :partial => "comments/form", :locals => { :micropost => micropost } %>
</div>
<div id='comments'>
<%=render micropost.comments %>
</div>
</div>

Когда нажата кнопка выше, она показывает этот раздел, и я не хотел бы, чтобы 50 комментариев появлялись одновременно. Все предложения будут очень полезны. Спасибо!

Ответы [ 2 ]

2 голосов
/ 29 февраля 2012
  1. Убедитесь, что вы звоните @comments = Comment.paginate(:page => params[:page], :per_page => 10) в вашем контроллере
  2. Вы рендерите группу с помощью вызова <%= will_paginate @comments %>, а не через :render, а затем через will_paginate
  3. Поскольку я уже знаю, что вы используете вложенные партиалы.Я бы удостоверился, что предмет, который вы называете, имеет правильную коллекцию.После того, как эти три вещи выполнены, все должно работать нормально.

Вы также можете оформить заказ Railscast на will_paginate , хотя без про-подписки вам, возможно, придется посмотреть устаревшую версию .

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

Я бы посоветовал вам найти 2 драгоценных камня для рельсов, которые наиболее широко используются для разбиения на страницы на рельсах

-> будет разбивать на страницы

-> Каминари

Я предпочитаю Kaminari вместо paginate, потому что он предлагает гораздо большую гибкость, чем paginate.

...