2011-05-11 15 views
6

मैं कैनकन के साथ पेजिनेशन करना चाहता हूं हालांकि यह स्पष्ट नहीं है कि इसे will_paginate जैसे रत्नों के साथ कैसे एकीकृत किया जाए।कैनकन के साथ पेजिनेशन कैसे करें?

आदर्श रूप से कैनकन का load_resource will_paginate को प्रतिनिधि करेगा और अतिरिक्त शर्तों को जोड़ देगा। उदाहरण के लिए कैनकन में मैंने अतिथि उपयोगकर्ताओं को घोषित किया है

can :read, Post, :published => true 

और यह लोड_resource द्वारा स्वचालित रूप से संभाला जाता है। हालांकि मैं इन सभी परिणामों के माध्यम से पेज_पैगनेट पेज करना चाहता हूं।

कोई भी विचार।

सादर

ब्रैड

उत्तर

10

यह मेरा PostsController में

Kaminari https://github.com/amatsuda/kaminari के साथ क्या करना सरल है मैं तो बस करना

before_filter :load_by_pagination, :only => :index 
    def load_by_pagination 
    @posts = Post.accessible_by(current_ability).order("published_date desc").page params[:page] 
    end 

ध्यान दें कि Kaminari नई rails3 ActiveRelation ढांचे के साथ ठीक से काम करता तो स्कोप बनाने के लिए एक साथ श्रृंखला विधियों के लिए संभव है। और जैसा कि कैनकन भी सक्रिय रिलेशनशिप अनुकूल है, वे दोनों एक साथ श्रृंखला बनाते हैं।

6

तुम भी कुछ इस तरह कर सकते हैं:

class PostsController 

    def index 
    @posts = @posts.page(params[:page])  
    ... 
+0

हाँ, पर उसके बाद अगर कुछ नहीं के बराबर के लिए सुलभ, कैनकैन सेट @posts है और दुनिया समाप्त होता है ... या वहाँ एक और तरीका है? – pitosalas

+0

जब तक आप पेजिंग से पहले डेटाबेस से सभी @ पोस्ट को खींचना नहीं चाहते हैं, तब तक इसे टालना चाहिए। –

संबंधित मुद्दे