2013-05-08 13 views
6

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

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.

+0

Dzięki za odpowiedź. Tak działa dobrze – Arif

+0

Oto Coffeescript, aby automatycznie przesłać formularz po wybraniu nowego limitu. https://gist.github.com/scarver2/225b9e595a675aad31ca – scarver2

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.

Powiązane problemy