AM – Lista paginada de contatos

AM_Lista_paginada

Uma melhoria bem simples à Agenda Mequetrefe que é tão fácil de ser implementada que não custa nada ser feita! 🙂

Alterando a aplicação

A primeira coisa é acrescentar o kaminari na lista dos módulos utilizados pela aplicação:

$ cd AM
echo "gem 'kaminari'" >> Gemfile
$ bundle install

Depois modificar o método index do controlador de “contacts” dentro do arquivo “./app/controllers/contacts_controller.rb”. Substituindo o  “.all” por:

...
  def index
    @contacts = Contact.order(name: :asc).page(params[:page])
  end
...

Incluir o seguinte na visão correspondente, o arquivo “./app/views/contacts/index.html.erb”:

 ...
   </table>
   <%= paginate @contacts %>
   <div class='alert'>
...

Este novo trecho ficará entre o final da tabela que é a lista dos contatos e o inicio do DIV que informa o número de registros.

É importante cuidar da localização acrescentando no final de “./config/locales/pt_BR.yml” e inserir:

pt-br:
  ...
  views:
    pagination:
      first: "Primeiro"
      last: "Último"
      previous: "Anterior"
      next: "Próximo"

Lembrando que os espaços do lado esquerdo em um arquivo YAML são importantes.

Por último criar o arquivo de configuração do módulo:

$ rails generate kaminari:config

Ele ficará em “./config/initializers/kaminari_config.rb” e contém parâmetros que ajustam seu funcionamento como, por exemplo, o número de itens por página.

Kaminari.configure do |config|
 # config.default_per_page = 25
 # config.max_per_page = nil
 # config.window = 4
 # config.outer_window = 0
 # config.left = 0
 # config.right = 0
 # config.page_method_name = :page
 # config.param_name = :page
end

Para os testes eu alterei o valor de config.default_per_page para exibir apenas dois contatos por página.

Daí basta executar o servidor HTTP do Rails e observar o resultado. 🙂

Anúncios

Um comentário sobre “AM – Lista paginada de contatos

  1. Pingback: Agenda em Rails, paginando a lista de contatos - Peguei do

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s