2012-02-29 2 views
0

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

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

Вы также можете быть уверены, что проверка на railscast на will_paginate хотя и без про подписки вы, возможно, придется смотреть outdated version.

+0

. Большое вам спасибо за помощь по прошлым двум проблемам:) ... Единственная проблема, которую я получаю в настоящее время, заключается в том, что при замене ' <% = рендерить micropost.comments%> 'с' <% = will_paginate @comments%> 'Я получаю одинаковые номера страниц в нижней части части комментария, но комментариев не появляется – Kellogs

+0

А, вам, возможно, не нужно использовать' @ комментарии' там. попробуйте использовать '<% = will_paginate micropost.comments%>', который может работать. Я просто использовал @comments, потому что не был уверен, какие переменные у вас есть. –

+0

Новая ошибка! x) 'undefined method' total_pages 'для # ' – Kellogs

0

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

->will paginate

->Kaminari

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

+0

В настоящее время я использую paginate для microposts на странице показа пользователей, но я не думаю, что можно разбивать на страницы комментарии, которые находятся под микросопротивлениями, вместе с микропостами, отображающими страницу пользователя. – Kellogs

+0

Вы можете разбивать страницы на все, что угодно хотеть. Все, что вам нужно, - установить ограничение на количество элементов, которые будут отображаться на странице. – nightf0x

Смежные вопросы