/ / Odwróć paginację z Kaminari bez elementu paginate_array? - ruby-on-rails, ruby, paginacja, kaminari

Odwróć paginację z Kaminari bez elementu paginate_array? - ruby-on-rails, ruby, paginacja, kaminari

Jestem początkującym, jeśli chodzi o ruby ​​na szynach, w moim projekcie używam klejnotu "kaminari" do tworzenia paginacji kolekcji obrazów. Chciałbym odwrócić oryginalną paginację, aby zamiast:

< , 1, 2, 3, 4 ... 10, >

* gdzie numery są numerami stron, a strzałki pokazują poprzednie i następne dla widoku paginacji

Chcę dostać:

<, 10, 9, 8, 7 ... 1, >

Moim problemem jest to, że nie mogę znaleźć żadnej pracyrozwiązanie i dlatego proszę was o pomoc. Chciałbym uniknąć użycia argumentu paginate_array ze względu na optymalizację. Czy istnieje sposób, aby po prostu odwrócić paginację od prawej do lewej? Czy coś takiego jest możliwe nawet z kaminari, czy powinienem zamienić się na coś innego na paginację?

Odpowiedzi:

0 dla odpowiedzi № 1

Możesz użyć sql order, limit, offset i rubin reverse na koniec. Próbuję zaimplementować przykład, ale potrzebuję testu.

gdzieś w modelu masz metodę, która zwraca stronę:

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 to jest jak page(1).per(10) lub limit 10 offset 10 To jest jak page(2).per(10). Spróbuj obejść to.