Sono un principiante quando si tratta di rubare su rotaie, nel mio progetto sto usando la gemma "kaminari" per impaginare la raccolta di immagini. Vorrei invertire l'impaginazione originale così anziché:
< , 1, 2, 3, 4 ... 10, >
* dove i numeri sono numeri di pagina e le frecce mostrano anteprima e successiva per la visualizzazione di impaginazione
Voglio ottenere:
<, 10, 9, 8, 7 ... 1, >
Il mio problema è che non riesco a trovare alcun lavorosoluzione e quindi ti chiedo aiuto per i ragazzi. Vorrei evitare l'uso di paginate_array per motivi di ottimizzazione. C'è un modo per capovolgere semplicemente l'impaginazione da destra a sinistra? È qualcosa di simile anche con kaminari o dovrei passare a qualcos'altro per l'impaginazione?
risposte:
0 per risposta № 1Puoi usare sql order
, limit
, offset
e rubino reverse
alla fine Cerco di implementare alcuni esempi ma ho bisogno di test.
da qualche parte nel modello hai metodo quale pagina di restituzione:
def users(page)
# find right offset
offset = if page.to_i == 1
# if page number 1 offset be 0
0
elsif page.to_i == 2
# if page number 2 offset be 10
10
else
# in another case offset must be page * 10
page.to_i.pred * 10
end
# order :desc and reverse
users.limit(10).offset(offset).order(created_at: :desc).reverse
end
limit
10 offset
0 è come page(1).per(10)
o
limit
10 offset
10 è come page(2).per(10)
. Prova a risolvere questo problema.