Problema de paginação mongóide
-
27-09-2019 - |
Pergunta
Estou lutando para paginar usando mongóides. Sou capaz de chamar paginate no meu objeto de coleção como
@results = @collections.paginate :page => 1, :per_page => 10
Mas como precisa ser referido em vista?
Na minha opinião, renderizei a coleção em parcial como
<%= render :collection => @collections, :partial => collect.xml %>
<%= will_paginate @results %>
Na linha acima, recebo o método indefinido de erro total_pages para a matriz.
Mas não há erro se eu remover a chamada Will_Paginate e todas as coleções são mostradas na visualização sem paginação. Pls ajuda.
Acho que estou errado em chamar o ajudante de paginação em vista. Eu procurei há muito tempo e não encontrei um exemplo que incluía a chamada de paginação em vista para o Mongoid.
Perdoe -me se for uma pergunta idiota. Eu sou novo no mongóide.
Solução
Este método chama
@results = @collections.paginate :page => 1, :per_page => 10
irá preencher @results
com uma variedade de 10 itens de @collections
. Você não precisa usar Will_Paginate, basta usar o @results
objeto como está.
Se você tiver problemas com a visualização dando mais de 10 resultados, depra o controlador e a visão para garantir que não haja algo entre mexer com o seu @results
variedade.
EDITAR:
AHA, então o problema é exibir links de paginação na visualização. Sim, para isso, você precisaria da visualização para saber coisas como a página atual e o número total de páginas disponíveis, para que você possa calcular quantos links são necessários.
Em troca, seus links precisariam informar ao controlador qual página está sendo solicitada, o que você pode alcançar com os parâmetros de solicitação GET. Os ajudantes são provavelmente a melhor maneira de manter a vista limpa.