Freelancers BR

Encontre dicas, tutorias e empregos

Will_paginate em português

Outra dica rápida de hoje, para você que está se aventurando no mundo Ruby on Rails (assim como eu), existe um plugin muito bom para realizar paginação de dados, chama-se will_paginate, existe uma infinidade de tutoriais sobre ele na internet, por isso vou explicar aqui diretamente o seu uso.
Vamos supor que temos uma aplicação de um blog em Rails, e que queremos fazer a paginação dos posts (estou considerando que já temos criado o Model, o Controller, uma View e que o plugin já está instalado).
Na action do controller (que eu chamei de list_posts):

  def list_posts
    @posts = Post.paginate :page => params[:page], :per_page => "10", :conditions => "status = 'A'", : order => "id DESC"
  end

O parâmetro page identifica a página atual.
O parâmetro per_page indica o número de registros a serem exibidos por página.
Inventei uma condição status igual a A(ativo), imaginando que na tabela existisse um campo status.
E o order para aparecerem primeiro sem os ultimos posts.

Na view list_posts:

<% @posts.each do |post| %>
  <div class="posts">
    <%= link_to post.titulo, :controller => "posts", :action => "show_post", :id => post %>
  </div>
<% end %>
<%= will_paginate @posts, :previous_label => "&laquo; Anterior", :next_label => "Próxima &raquo;" %>

Primeiro vem o looping para mostrar o titulo dos posts com um link para uma possivel action show_post, passando como parâmetro o id do post.
Depois o menu criado pelo plugin will_paginate, passando o previous e next label em português.
Muito possivelmente para funcionar esse link será necessário acrescentar a seguinte linha no arquivo de rotas:

  map.connect 'posts/:id', :controller => 'posts', :action => 'show_post'

Posts relacionados:

  1. Requisição HTTP no Ruby on Rails

Tags: , , , ,

Postado em sexta-feira, agosto 7th, 2009 at 18:18 na categoria Ruby on Rails. Siga o RSS 2.0 feed. You can leave a response, or trackback from your own site.

4 Respostas to “Will_paginate em português”

  1. 14/09/2009 as 21:23

    André Moreira disse:

    Valeu pela dica!

  2. 10/11/2009 as 16:36

    Sergio disse:

    Obrigado pela Dica!!!
    Só uma correção:
    Para mudar o label Previous fica assim:
    :prev_label => “« Anterior”

  3. 10/11/2009 as 17:12

    Lucas Renan disse:

    Sergio,

    esse parâmetro se chamava :prev_label nas versões do Rails 2.3.2 e anteriores, hoje estamos na versão 2.3.4 e agora se chama :previous_label

  4. 16/12/2009 as 14:37

    Paulo Trentin disse:

    Cara, muito show sua dica, estou iniciando agora em Ruby on Rails e tinha justamente essa dúvida, pois estava tentando colocar os parâmetros no controller e só dava erro. Na view funciona ok, e é realmente previous_label na versão que estou usando também… é isso aí, continue assim.

Deixe seu comentário!