2013-06-14 12 views
8

मैं will_paginate मणि का उपयोग करने की कोशिश कर रहा हूं लेकिन कुछ गलत है। मैं undefined method `paginate' त्रुटि से फंस गया हूं। मैंने कई मुद्दों को पढ़ा और बहुत सी चीजों को आजमाया।अपरिभाषित विधि 'पेजिनेट'

यह मेरा LocationsController.rb है:

def index 
    @locations = Location.all  
    respond_to do |format| 
    @locations = @locations.paginate(:page => params[:page], :per_page => 10) 
    format.html #index.html.erb 
    format.json { render json: @locations } 
    end 
end 

और ये मेरे index.html.erb में मेरी will_paginate की लाइन है:

<%= will_paginate @locations %> 

और इस त्रुटि है: यहाँ मैं क्या आपके पास यह है

undefined method `paginate' for #<Class:0xaa2e48c> 

मैं अपनेमें आवश्यक भाग भी जोड़ता हूं:

gem "will_paginate", "~> 3.0.4", :require => nil 
मेरी environment.rb के अंत में

और यह:

require "will_paginate"` 

उत्तर

14

will_paginate उस तरह काम नहीं करता। paginateLocation वर्ग की एक विधि है: इसके अलावा

def index 
    @locations = Location.paginate(page: params[:page], per_page: 10) 
    respond_to do |format| 
    format.html 
    format.json { render json: @locations } 
    end 
end 

, उपयोग करने के लिए will_paginate आप बस अपने Gemfile में नीचे लाइन जोड़ने की जरूरत है चाहिए, environment.rb में कोई संशोधन की आवश्यकता है:

gem "will_paginate", "~> 3.0.4" 
3

आप कोशिश सरगंध करने के लिए सरणी। इस प्रयास करें:

def index 
    @locations = Location.paginate(:page => params[:page], :per_page => 10) 

    respond_to do |format| 
     format.html #index.html.erb 
     format.json { render json: @locations } 
    end 
    end 

आप पृष्ठ पर अंक लगाना करने के लिए श्रृंखला दिखाई देगी Paginating an Array in Ruby with will_paginate

12

'will_paginate' मणि स्थापित करने के बाद सर्वर को पुनः आरंभ करना सुनिश्चित करें चाहते हैं।

यह मेरे मामले में बेवकूफ मुद्दा था।

+0

विडंबनात्मक रूप से; मैंने पिछले कुछ वर्षों में इस समाधान का उपयोग तीन बार अपने समाधान के रूप में किया है। मैं कुछ भी करूं कुछ फर्क नहीं पड़ता; मैं मणि स्थापित करने के बाद रेल एस को दोबारा शुरू नहीं कर सकता! –

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