2013-05-08 6 views
6

के साथ कस्टम प्रति पृष्ठ मैं रेल 3.2 आवेदन के साथ कामिनारी मणि का उपयोग कर रहा हूं। यह ठीक से काम कर रहा है। अब मैं [5, 10, 15, 20] विकल्पों के साथ एक कस्टम प्रति पृष्ठ ड्रॉप डाउन जोड़ना चाहता हूं। प्रति पेज चयनित पेजिनेशन लिंक प्रति पेज मान को संरक्षित करना चाहिए। इस कस्टम प्रति पृष्ठ कार्यक्षमता को लागू करने का सबसे अच्छा तरीका क्या है?कैमिनेरी मणि

उत्तर

7

एक जीईटी फॉर्म जोड़ें।

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

और अपने नियंत्रक में

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

जोड़ने यह मानते हुए है अपने संसाधन पदों है, लेकिन स्पष्ट रूप से आप जो कुछ भी यह है आप paginating कर रहे हैं करने के लिए इसे बदल सकते हैं।

बेशक आपको सबमिट बटन या जावास्क्रिप्ट के माध्यम से किसी भी तरह फॉर्म को ट्रिगर करने की आवश्यकता है।

+0

उत्तर के लिए धन्यवाद। हां यह ठीक काम कर रहा है – Arif

+0

नई सीमा का चयन होने पर फ़ॉर्म को स्वत: सबमिट करने के लिए कॉफ़ीस्क्रिप्ट यहां दिया गया है। https://gist.github.com/scarver2/225b9e595a675aad31ca – scarver2

1

सबसे अच्छी मार्गदर्शिका है जो बताती है कि कैमिनेरी मणि कैसे काम करता है, मेरा सुझाव है कि आप बस उस ट्यूटोरियल को पढ़ लें। http://railscasts.com/episodes/254-pagination-with-kaminari। कामिनरी मणि सबसे अच्छा है जो विकल्प को कम करने में मदद करता है।

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

अपने कस्टम विकल्प के लिए आपको ड्रॉप डाउन बॉक्स से अपना विकल्प पढ़ना होगा और 5 से वेरिएबल के साथ प्रतिस्थापित करना होगा जिसे हम उपयोगकर्ता से प्राप्त करते हैं। ड्रॉप डाउन बॉक्स

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

यहां experiance_year वह चर है जो उपयोगकर्ता से इनपुट प्राप्त करता है।