2013-06-14 16 views
8

Próbuję użyć klejnotu wola__poginatu, ale coś jest nie tak. Utknąłem z błędem undefined method `paginate'. Czytam wiele problemów i próbuję wielu rzeczy. Oto co mam:Niezdefiniowana metoda "paginate"

To mój 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 

I to jest wiersz mojego will_paginate w moim index.html.erb:

<%= will_paginate @locations %> 

I to jest błąd:

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

Dodaję też część wymagającą w moim Gemfile:

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

I to w końcu mojego environment.rb:

require "will_paginate"` 

Odpowiedz

14

will_paginate nie działa tak. paginate to metoda klasy Location:

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

Ponadto, aby skorzystać will_paginate powinien po prostu trzeba dodać linię poniżej w swojej Gemfile, bez modyfikacji w environment.rb wymagana jest

gem "will_paginate", "~> 3.0.4" 
3

spróbować do stronicowania tablicy. Spróbuj tego:

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 

Jeśli chcesz paginate tablica zobaczyć Paginating an Array in Ruby with will_paginate

12

Upewnij się, aby ponownie uruchomić serwer po zainstalowaniu „will_paginate” gem.

To był głupi problem w moim przypadku.

+0

Jak na ironię; Użyłem tej odpowiedzi jako mojego rozwiązania trzy razy w ciągu ostatnich lat. Nie ważne co zrobię; Nigdy nie pamiętam, aby ponownie uruchomić Rails S po zainstalowaniu klejnotu! –

Powiązane problemy