Каминари не ограничивает сбор в Шпрее

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

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

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

Вид -

     <% 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 %>

Контроллер -

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

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


person AndrewJL    schedule 22.10.2015    source источник


Ответы (1)


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

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

person baron816    schedule 22.10.2015
comment
И всего несколько советов: вам не нужен || 1 операция. Это делается автоматически. Я также думаю, что вам следует изучить использование шаблона фасада. Это поможет лучше организовать ваш код robots.thoughtbot.com/sandi-metz- правила для разработчиков - person baron816; 22.10.2015
comment
Большое спасибо, барон, слишком много внимания уделял элементам нумерации страниц. Я также посмотрю на шаблон фасада, устал возиться с кодом Spree других людей. - person AndrewJL; 22.10.2015