मैं एक रेल 3.2 अनुप्रयोग के लिए will_paginate उपयोग करने के लिए कोशिश कर रहा हूँ और मैं कहीं भी क्या होता है जब किसी को है, जबकि DB में डेटा बदल गया है पेजिंग है के लिए किसी भी संदर्भ नहीं देखा था । अधिक विशेष रूप से, नए रिकॉर्ड जोड़े गए हैं।रेल will_paginate और ajax, पेजिंग जबकि डीबी तालिका में परिवर्तन
मैं कुछ यहाँ याद आ रही हो सकता है, लेकिन अगर मैं यह कैसे काम करता हो, will_paginate बस डीबी में रिकॉर्ड गिना जाता है। कहें कि मैं एक समय में 5 रिकॉर्ड वाले एक पृष्ठ को लोड करता हूं और उन्हें नवीनतम सबसे पहले आदेश देना चाहता हूं। कोई उपयोगकर्ता पृष्ठ लोड करता है और पृष्ठ 1 पर दिखाए गए रिकॉर्ड 6-10 (उस समय के नवीनतम रिकॉर्ड) प्राप्त करता है। फिर, कोई तालिका, आईडी = 11 पर एक और रिकॉर्ड डालता है। उसके बाद, पहला उपयोगकर्ता पृष्ठ 2 पर जाने के लिए क्लिक करता है लेकिन अब पृष्ठ 2 रिकॉर्ड 2-6 देता है। तो उपयोगकर्ता को दोनों पृष्ठों में आईडी = 6 मिला।
यह समस्या है कि बुरा नहीं लग रहा है, लेकिन यह वास्तव में बुरा है जैसा कि यहाँ दिखाया आप एक अनंत स्क्रॉल के लिए will_paginate पेजिंग उपयोग करना चाहते हैं: http://railscasts.com/episodes/114-endless-page
मैं पहली बार पृष्ठ लोड के समय स्टाम्प जोड़ने के बारे में सोचा और इसे डुप्लिकेट न प्राप्त करने के लिए पहले मौजूद रिकॉर्ड्स पर फ़िल्टर करने के लिए लगातार AJAX कॉल को पास करें।
क्या इसे संभालने के लिए कुछ बेहतरीन अभ्यास तरीका है?
मैंने पहले पृष्ठ लोड के समय मौजूद डेटा प्राप्त करने के लिए एक टाइमस्टैम्प का उपयोग किया था। – Oded
उस स्थिति में आप एक चेक जोड़ने पर विचार करना चाहेंगे कि क्या टाइमस्टैम्प की तुलना में कोई रिकॉर्ड हाल ही में है या नहीं, और यदि ऐसा है, तो उपयोगकर्ता को हाल के परिणामों को लोड करने की अनुमति देने के लिए एक लिंक प्रदर्शित करें (देखें कि ट्विटर यह कैसे करता है उदाहरण)। – Benissimo