Paginação no Rails usando o will_paginate
Uma maneira fácil de se trabalhar com paginação no Ruby on Rails é utilizar o plugin will_paginate. Nesse breve artigo irei demonstrar como instalar e utilizar em sua aplicação.
Primeiro instalaremos o plugin:
gem install will_paginate
Com o plugin instalado, podemos começar a configura-lo na aplicação. Para isso abra o arquivo environment.rb dentro do diretório config e adicione no final do arquivo a seguinte linha:
require "will_paginate"
Com isso, sua aplicação só irá subir se o plugin will_paginate estiver presente.
Já no controlador devo usar o método paginate para efetuar a busca pelos registros no banco. No meu caso, tenho uma entidade chamada ‘noticia’ e no método ‘index’ do seu controlador, pelo padrão o rails faz uma busca por todos os registros no banco.
def index
@noticias = Noticia.all
respond_to do |format|
format.html # index.html.erb
format.xml { render : xml => @noticias }
end
E no caso eu irei deixa-lo assim:
def index
@noticias = Noticia.paginate :page => params[:page], : order => 'created_at DESC', :per_page => 10
respond_to do |format|
format.html # index.html.erb
format.xml { render : xml => @noticias }
end
end
Onde o “:order =>” irá definir a ordem de exibição dos registros.
E o “:per_page =>” a quantidade de registros por página.
E pra terminar, abra a view e adicione logo abaixo do término da tabela:
<%= will_paginate @noticias %>



Comentários