2013-05-08 3 views
6

Ich benutze Kaminari Edelstein mit Schienen 3.2 Anwendung. Es funktioniert einwandfrei. Jetzt möchte ich ein benutzerdefiniertes pro Seite Dropdown mit [5, 10, 15, 20] Optionen hinzufügen. Bei pro Seite ausgewählten Seitenumbruch-Links sollte der Wert pro Seite beibehalten werden. Was ist der beste Ansatz, um diese benutzerdefinierte Funktion pro Seite zu implementieren?Benutzerdefinierte pro Seite mit Kaminari Edelstein

Antwort

7

Fügen Sie ein GET-Formular hinzu.

<%= form_tag posts_path, method: :get do %> 
    <%= select_tag :limit, options_for_select([5, 10, 15, 20], selected: params[:limit] || 10) %> 
<% end %> 

Und in Ihrem Controller hinzufügen

@posts = @posts.per(params[:limit]) if params[:limit] 

Diese Ihre Ressource Beiträge geht davon aus, aber natürlich können Sie es ändern, was auch immer es ist, Sie Paginieren.

Natürlich müssen Sie das Formular irgendwie auslösen, entweder durch Hinzufügen eines Absenden-Knopfes oder durch Javascript.

+0

Danke für die Antwort. Ja, es funktioniert gut – Arif

+0

Hier ist das Coffeescript, um das Formular automatisch zu senden, wenn ein neues Limit ausgewählt wird. https://gist.github.com/scarver2/225b9e595a675aad31ca – scarver2

1

Es gibt beste Anleitung, die einfach erklärt, wie Kaminari Juwel funktioniert, ich schlage vor, lesen Sie einfach über das Tutorial. http://railscasts.com/episodes/254-pagination-with-kaminari. Das Kaminari-Juwel ist das beste, das hilft, Option zu paginieren.

@products = Product.order("name").page(params[:page]).per(5) 

für Ihre benutzerdefinierte Option, die Sie Ihre Option aus einem Dropdown-Feld lesen müssen und die 5 mit Variable ersetzen, die wir von Benutzer erhalten haben. für die Dropdown-Box

<td><%= f.select :experiance_year, options_for_select([*0..10 ],0)%></td> 

hier experiance_year ist die Variable, die Eingabe vom Benutzer erhalten.