Impaginazione in Rails Con la gemma will_paginate

Il mondo gira sempre più velocemente e questa accelerazione è evidente in tutti gli aspetti della nostra vita. Soprattutto quando si tratta di affari, il premio sta nella velocità. In questa frenetica accelerazione, la volatilità è l’unica costante e le persone hanno una grande affinità con le cose che possono far risparmiare tempo. La popolarità di Ruby on Rails è dovuta al fatto che ciò che potrebbe richiedere mesi e anni per il completamento di altri linguaggi di programmazione può essere realizzato in settimane e giorni con Ruby on Rails. Allora come fa Ruby on Rails a creare applicazioni in così poco tempo? Tra le altre cose, le gemme Ruby sono uno dei fattori più importanti che contribuiscono a far sì che Ruby on Rails riduca i costi di sviluppo. Queste gemme sono un elenco di codici riutilizzabili categorizzati che aiutano gli sviluppatori a creare applicazioni a una velocità maggiore. Una delle gemme più importanti tra un'orda di gemme è la gemma dell'impaginazione. L'impaginazione, che è un aspetto davvero importante di qualsiasi applicazione Web, aiuta a dividere i documenti in pagine distinte. In Ruby on Rails possiamo facilmente impaginare i dati utilizzando una gemma chiamata 'will_paginate'. La libreria will_paginate semplifica l'aggiunta di funzionalità di impaginazione alle app Rails (e ad altri framework Ruby). will_paginate è un plugin molto ben progettato. Oltre all'integrazione degli oggetti ActiveRecord, può integrarsi con array e qualsiasi raccolta.

Passaggi per l'integrazione di will_paginate con Rails :

Passo 1 : aggiungi "gem will_paginate" nel tuo Gemfile

Gemfile:

gemma 'will_paginate', '~> 3.0'

Passo 2 : Installazione pacchetto

Esegui l'"installazione del bundle" del tuo progetto Rails

Installazione del pacchetto:

Questo comando deve essere eseguito nella directory dell'applicazione Rails che installerà gem 'will_paginate' nell'ambiente Ruby se non è già installato. Se questo gem è già disponibile nel tuo ambiente, utilizzerà semplicemente il gem con l'applicazione Rails.

Passaggio 3 : Integrazione di base

Aggiungi il parametro di impaginazione al modello su cui viene eseguita la query per il set di risultati impaginato. Ora aggiungiamo l'impaginazione alla nostra applicazione. Apri di nuovo il controller e modificalo in modo che assomigli al codice seguente.

Codice del controllore :

app/controllers/articles_controller.rb:

class ArticoliController <ApplicationController

indice def

@articoli = Blog.paginate(:page => params[:page], :per_page => 10)

FINE

FINE

Aggiungerebbe i parametri richiesti nella successiva raccolta di record per visualizzare i collegamenti di impaginazione nel front-end (.erb). Parametri aggiunti:

  • current_page – è il numero di pagina corrente per il set di dati dei risultati impaginati
  • total_entries – numero di record nel database che soddisfa i criteri specificati
  • limite: limite per pagina per i dati dei risultati impaginati
  • offset – set di dati impaginati corrente -> per mostrare la pagina corrente

Parametri :

  • :page – Questo è il parametro inviato nella stringa di query. In base a ciò si decide quali record devono essere recuperati.
  • :per_page – Questo è il numero di risultati che desideri recuperare per pagina

Visualizza codice :

app/views/articles/index.html.erb

<div class="”row" margin-twenty5-zero margin-b-zero pagination-row”>

<div class="”col-lg-8" col-md-8 col-sm-7 col-xs-6 padding-zero”>

  • <%= will_paginate(@articles,:previous_label => “«”, :next_label => “»”,:class=>”small-font”,:outer_window => 1,:inner_window => 0) %>

</div>

<div class="”col-lg-4" col-md-4 col-sm-5 col-xs-6 pagination-info”>

<span class="”pull-right”"><%= page_entries_info(@articles) %></span>

</div>

</div>

Helper di visualizzazione standard :

Restituisce HTML che rappresenta i collegamenti di pagina per un oggetto simile a WillPaginate::Collection. Nel caso in cui non ci sia più di una pagina in totale, viene restituito nil.

  • :class – Nome della classe CSS per il DIV generato (predefinito: “impaginazione”)
  • :etichetta_precedente – predefinito: “« Precedente”
  • :next_label – predefinito: “Avanti »”
  • :page_links – quando false, vengono visualizzati solo i collegamenti precedenti/successivi (impostazione predefinita: true)
  • :inner_window – quanti collegamenti vengono mostrati nella pagina corrente (default: 4)
  • :outer_window – quanti collegamenti ci sono intorno alla prima e all'ultima pagina (default: 1)
  • :link_separator – separatore di stringa per gli elementi HTML della pagina (predefinito: spazio singolo)
  • :param_name – nome del parametro per il numero di pagina negli URL (predefinito: :page)
  • :params – parametri aggiuntivi durante la generazione di collegamenti di impaginazione (es. :controller => “foo”, :action => nil)
  • :renderer – nome della classe, classe o istanza di un renderer di collegamento (predefinito in Rails: WillPaginate::ActionView::LinkRenderer)
  • :container – attiva/disattiva il rendering del contenitore DIV per i collegamenti di impaginazione, impostato su false solo quando si esegue il rendering del proprio markup di impaginazione (impostazione predefinita: true)

Tutte le opzioni non riconosciute da will_paginate diventeranno attributi HTML sull'elemento contenitore per i collegamenti di impaginazione

<%= will_paginate @posts, :style => 'color:blue' %>
page_entries_info(raccolta, opzioni)
Restituisce un messaggio contenente il numero di voci visualizzate rispetto a quelle totali.

<%= page_entries_info @posts %>
#=> Visualizzazione dei post 6 – 12 su 26 in totale

  • :model – una classe di modello o un nome di stringa (predefinito: collection.first.class)
  • :html – impostato su false per generare testo semplice (impostazione predefinita: true)

Github: https://github.com/mislav/will_paginate

Leggi articoli simili:

Iscriviti per gli ultimi aggiornamenti

Articoli correlati

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

it_ITItalian