2015-10-22 1 views
0

По какой-то причине Kaminari не ограничивает дочерние объекты в представлении родительского шоу.Kaminari не ограничивает сбор в Spree

Можно просмотреть ссылки на страницы, но коллекция не ограничена.

Что я делаю неправильно?

View -

 <% if @handbag.microposts.any? %> 
     <h3>Posts (<%= @handbag.microposts.count %>)</h3> 
<div class="row"> 
    <div class="col-md-8"> 
     <ol class="microposts"> 
      <% @handbag.microposts.each do |micropost| %> 
      <li id="micropost-<%= micropost.id %>"> 
       <span class="user"><%= micropost.user.email %></span> 
       <span class="content"><%= micropost.content %></span> 
       <%= image_tag micropost.picture.url if micropost.picture? %> 
       <span class="timestamp"> 
       Added <%= time_ago_in_words(micropost.created_at) %> ago. 
       </span> 
      </li> 
      <% end %> 
     </ol> 
     <%= paginate @microposts %> 

Controller -

def show 
    @handbag = Spree::Handbag.find(params[:id]) 
    @microposts = @handbag.microposts.page(params[:page] || 1).per(10) 
    end 

Спасибо за любую помощь.

ответ

0

Вы перебираете @ handbag.microposts, которая представляет собой всю коллекцию, а не @microposts, которая представляет собой разбитую на страницы коллекцию.

Так просто изменить @ handbag.microposts.each на @ microposts.each

+0

И всего несколько предложений: вам не нужен || 1. Это делается автоматически. Я также думаю, что вы должны изучить использование шаблона фасада. Это поможет упорядочить код лучше https://robots.thoughtbot.com/sandi-metz-rules-for-developers – baron816

+0

Большое спасибо барону, слишком сильно концентрировался на элементах разбивки на страницы. Я также посмотрю на рисунок фасада, уставая от неуклюжего общения с другими людьми. – AndrewJL

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