Världen snurrar snabbare och snabbare och denna acceleration är tydlig i alla aspekter av våra liv. Speciellt när det kommer till affärer ligger premien på hastigheten. I denna desperata accelererade är volatiliteten den enda konstanta och människor har stor affinitet till saker som kan spara tid. Populariteten för Ruby on Rails beror på det faktum att det som kan ta månader och år för andra programmeringsspråk att slutföra kan byggas på veckor och dagar med Ruby on Rails. Så hur lyckas Ruby on Rails bygga applikationer på så kort tid? Bland annat är Ruby-ädelstenar en av de viktigaste bidragande faktorerna för att få Ruby on Rails att minska utvecklingskostnaderna. Dessa pärlor är en lista över kategoriserade återanvändbara koder som hjälper utvecklarna att bygga applikationer i en snabbare takt. En av de viktigaste pärlorna bland en hord av ädelstenar är pagineringspärla. Paginering som är en riktigt viktig aspekt av alla webbapplikationer hjälper till att dela upp dokument i diskreta sidor. I Ruby on Rails kan vi enkelt paginera data med hjälp av en pärla som heter 'will_paginate'. Will_paginate-biblioteket gör det enkelt att lägga till sideringsfunktioner till Rails-appar (och andra Ruby-ramverk). will_paginate är ett mycket väldesignat plugin. Förutom ActiveRecord-objektintegrering kan den integreras med array och valfri samling.
Steg för integration av will_paginate med Rails :
Steg 1 : Lägg till "gem will_paginate" i din Gemfile
Gemfil:
gem 'will_paginate', '~> 3.0'
Steg 2 : Bundle Install
Utför "Bundle Install" av ditt Rails-projekt
Paketinstallation:
Detta kommando måste köras i Rails Application katalog som kommer att installera gem 'will_paginate' i Ruby-miljö om det inte redan är installerat. Om denna pärla redan är tillgänglig i din miljö kommer den bara att använda ädelstenen Rails Application.
Steg 3 : Grundläggande integration
Lägg till pagineringsparameter till modellen som efterfrågas för den paginerade resultatuppsättningen. Låt oss nu lägga till paginering i vår applikation. Öppna din kontroller igen och ändra den så att den ser ut som koden nedan.
Kontrollörens kod :
app/controllers/articles_controller.rb:
class ArticlesController < ApplicationController
def index
@articles = Blog.paginate(:page => params[:page], :per_page => 10)
slutet
slutet
Det skulle lägga till nödvändiga parametrar i den efterföljande samlingen av poster för att visa pagineringslänkar i front-end (.erb). Parametrar som läggs till:
- aktuell_sida – det är det aktuella sidnumret för sidnumrerade resultatdatauppsättningar
- total_entries – antal poster i databasen som uppfyller de givna kriterierna
- limit – per sida gräns för sidnumrerade resultatdata
- offset – aktuell paginerad datamängd -> för att visa aktuell sida
Parametrar :
- :page – Detta är en parameter som skickas i frågesträng. Utifrån detta bestäms vilka poster som ska hämtas.
- :per_sida – Detta är antalet resultat som du vill hämta per sida
Visa kod :
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>
Hjälpare för standardvy :
Returnerar HTML som representerar sidlänkar för ett WillPaginate::Collection-liknande objekt. Om det inte finns mer än en sida totalt, returneras noll.
- :class – CSS-klassnamn för den genererade DIV (standard: "paginering")
- :previous_label – standard: “« Föregående”
- :next_label – standard: “Nästa »”
- :page_links – när falskt renderas endast föregående/nästa länkar (standard: true)
- :inner_window – hur många länkar som visas runt den aktuella sidan (standard: 4)
- :outer_window – hur många länkar finns runt första och sista sidan (standard: 1)
- :link_separator – strängseparator för HTML-element på sidan (standard: enstaka blanksteg)
- :param_name – parameternamn för sidnummer i webbadresser (standard: :page)
- :params – ytterligare parametrar vid generering av pagineringslänkar (t.ex. :controller => "foo", :action => noll)
- :renderer – klassnamn, klass eller instans av en länkrenderare (standard i Rails: WillPaginate::ActionView::LinkRenderer)
- :container – växlar rendering av DIV-behållaren för pagineringslänkar, inställd på false endast när du renderar din egen pagineringsmarkering (standard: true)
Alla alternativ som inte känns igen av will_paginate kommer att bli HTML-attribut på containerelementet för pagineringslänkar
<%= will_paginate @posts, :style => 'color:blue' %>
page_entries_info(samling, alternativ)
Återger ett meddelande som innehåller antalet visade kontra totalt antal poster.
<%= page_entries_info @posts %>
#=> Visar inlägg 6 – 12 av totalt 26
- :model – en modellklass eller strängnamn (standard: collection.first.class)
- :html – ställ in på false för att generera vanlig text (standard: true)
Github: https://github.com/mislav/will_paginate
Läs liknande artiklar: