Używam klejnot Kaminari z aplikacją szyn 3.2. Działa poprawnie. Teraz chcę dodać rozwijanie niestandardowe na stronę za pomocą opcji [5, 10, 15, 20]. Z zaznaczonymi stronami łącza stronicowania powinny zachować wartość na stronę. Jakie jest najlepsze podejście do implementacji tej niestandardowej funkcjonalności na stronie?Niestandardowe na stronie z kaminari gem
6
A
Odpowiedz
7
Dodaj formularz GET.
<%= form_tag posts_path, method: :get do %>
<%= select_tag :limit, options_for_select([5, 10, 15, 20], selected: params[:limit] || 10) %>
<% end %>
A w kontrolerze dodać
@posts = @posts.per(params[:limit]) if params[:limit]
to zakładając, że zasób jest postów, ale oczywiście można go zmienić na cokolwiek to jest, jesteś Stronicowanie.
Oczywiście musisz jakoś uruchomić formularz, dodając przycisk wysyłania lub javascript.
1
Istnieje najlepszy przewodnik, który po prostu wyjaśnia, w jaki sposób działa klej kaminari, sugeruję przeczytanie tego samouczka. http://railscasts.com/episodes/254-pagination-with-kaminari. Klejnot kaminari jest najlepszy, co pomaga w opcji paginacji.
@products = Product.order("name").page(params[:page]).per(5)
dla niestandardowych opcji trzeba czytać opcję z rozwijanej listy i wymień 5 ze zmienną że mamy dostać od użytkownika. dla rozwijanego pola
<td><%= f.select :experiance_year, options_for_select([*0..10 ],0)%></td>
tutaj experiance_year jest zmienną pobierającą dane wejściowe od użytkownika.
Dzięki za odpowiedź. Tak działa dobrze – Arif
Oto Coffeescript, aby automatycznie przesłać formularz po wybraniu nowego limitu. https://gist.github.com/scarver2/225b9e595a675aad31ca – scarver2