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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top