2011-02-15 18 views
15

के साथ सॉर्टिंग, फ़िल्टरिंग, पेजिनेशन के लिए कोई भी अच्छा रेल उदाहरण/ढांचा क्या रेल पर रूबी के लिए कोई खुला स्रोत (या उदाहरण) कोड है जो एक निश्चित मॉडल को फ़िल्टर, सॉर्ट और पगेट कर सकता है? इसके अलावा, अगर परिणाम अजाक्स के माध्यम से वापस आ सकते हैं तो यह बहुत अच्छा होगा। मैं क्या तलाश कर रहा हूँ इस Trulia वेब पेज पर देखा जा सकता का एक अच्छा उदाहरणअजाक्स

http://www.trulia.com/for_sale/30000-1000000_price/10001_zip/

(ध्यान दें कि के रूप में फिल्टर बंद जाँच कर रहे हैं, परिणाम के बिना एक पृष्ठ पुनः लोड अपडेट किया जाता है।)

इस प्रकार के संचालन (फ़िल्टर, सॉर्ट, पेजिनेट) इतने आम हैं कि किसी ने इसके लिए कुछ लिखा होगा। मैं इसे अपने आप समझ सकता हूं, लेकिन उम्मीद है कि उदाहरण कोड या एक मणि है जो मुझे आवश्यक कार्यों को प्रदान करता है। और फिर, मुझे उम्मीद है कि यह या तो jQuery या प्रोटोटाइप का उपयोग करके अजाक्स के साथ किया जा सकता है।

धन्यवाद।

उत्तर

4

सभी ajax सामान के लिए, आप jQuery का उपयोग कर सकते हैं और बस उदाहरण के लिए चेक बॉक्स में घटनाओं को जोड़ने:

$(":checkbox").change(function() { 
    var form = $(this).closest("form"); 

    form.submit() // if you use the jquery form plugin http://jquery.malsup.com/form/ 

    //or 
    $.ajax({ 
     url: form.attr("action"), 
     type: "POST", 
     dataType: "script", 
     data: form.serialize() 

    }) 
}) 

फ़िल्टरिंग और सॉर्टिंग प्राप्त मापदंडों के आधार पर एक प्रश्न के साथ आसानी से किया जा सकता है फार्म से

Model.where(...).order(...).paginate(:per_page => 1, :page => params[:page]) 

और आप पृष्ठांकन के लिए उपयोग कर सकते हैं will_paginate (https://github.com/mislav/will_paginate)। यह एक महान मणि है।

आप या तो नियंत्रक कार्रवाई से मेल खाते .js.erb फ़ाइल में पृष्ठ को अपडेट करेंगे, या अगर आप डेटा टाइप: "html" का उपयोग करते हैं तो AJAX कॉल की सफलता कॉलबैक में।

9

आपको निश्चित रूप से smart_listing मणि (https://github.com/Sology/smart_listing) चेकआउट करना चाहिए।

यह अंकन के लिए कामिनरी का उपयोग करता है और & फ़िल्टरिंग को सॉर्ट करने के अलावा, smart_listing भी जगह-जगह संपादन का समर्थन करता है।

यहां a demo है।