2013-06-14 24 views
8

Ich versuche, den Edelstein will_paginate zu verwenden, aber etwas stimmt nicht. Ich bin mit einem undefined method `paginate' Fehler fest. Ich lese viele Probleme und versuche viele Dinge. Hier ist, was ich habe:Nicht definierte Methode `paginate '

Das ist mein 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 

Und das ist meine Linie will_paginate in meinem index.html.erb:

<%= will_paginate @locations %> 

Und das ist der Fehler:

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

Ich füge auch die erfordern Teil in meinem Gemfile:

gem "will_paginate", "~> 3.0.4", :require => nil 

Und das am Ende meines environment.rb:

require "will_paginate"` 

Antwort

14

will_paginate wie das funktioniert nicht. paginate ist ein Verfahren der Location Klasse:

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

Außerdem zu verwenden will_paginate Sie gerade in Ihrem Gemfile die folgende Zeile hinzufügen müssen sollte, ist keine Änderung in environment.rb erforderlich:

gem "will_paginate", "~> 3.0.4" 
3

Sie versuchen, paginieren Array. Versuchen Sie folgendes:

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 

Wenn Sie Array Paginating an Array in Ruby with will_paginate

sehen Paginieren wollen
12

Stellen Sie sicher, den Server nach der Installation des 'will_paginate' gem neu zu starten.

Das war das dumme Problem in meinem Fall.

+0

Ironischerweise; Ich habe diese Antwort in den letzten Jahren dreimal als Lösung verwendet. Egal, was ich tue; Ich kann mich nicht daran erinnern, Rails S nach der Installation des Edelsteins neu zu starten! –

Verwandte Themen