Paginate / undefined method `paginate'

Witam!

Chcial bym uzyc w swoim projekcie “paginacji”. Pracuje na wersji 2. (chyba) 02 :wink: Wiem, ze od wesji 2 paginate zostalo wycofane i jest tylko w formie plugin-u. Wiec wedlug przypisu z ksiazki railsspace staram sie go zainstalowac: ruby script/plugin install svn://errtheblog.com/svn/plugins/classic_pagination. W sumie, to nie wiem, czy sie instaluje, bo nie ma zadnego komunikatu :confused: ale o bledzie tez nie ma ;D Niestety to nie pomaga. Nadal dostaje blad:

undefined method `paginate’ for #CommunityController:0x3558798

A tak przy okazji dlaczego likwiduja przydatne metody w nowszych wersjach? O scaffoldingu slyszalem, ze z powodu szybkosci dzialania, czy tutaj jest to samo?

Prosze o pomoc.

Pozdrawiam

rysic

zainstaluj sobie will_paginate

  1. poniewaz will_paginate jest na GitHub dodaj to repozytorium do zrodel gemow
gem sources -a http://gems.github.com
  1. zainstaluj will_paginate jako gem
gem install mislav-will_paginate
  1. w pliku environment.rb dodaj np na samym dole po ‘end’, wpis:
require "will_paginate"
  1. w kontrolerze swojej aplikacji pobierz jakies dane np:
@users = User.paginate :page => params[:page], :order => 'created_at DESC'
  1. w widoku dodaj:
<%= will_paginate @users %>

powinno dzialac

Robie tak jak napisales i wywala mi blad:

 The @community variable appears to be empty. Did you forget to pass the collection object for will_paginate?

[quote=rysic]Robie tak naj napisales i wywala mi blad:

 The @community variable appears to be empty. Did you forget to pass the collection object for will_paginate?

[/quote]
Oszczędnie pisząc:
@users.nil?

pozdrawiam

[quote=punkracy][quote=rysic]Robie tak naj napisales i wywala mi blad:

 The @community variable appears to be empty. Did you forget to pass the collection object for will_paginate?

[/quote]
Oszczędnie pisząc:
@users.nil?[/quote]
tylko @users nie sa nil… :confused:

Co ma @community do @users? Z tego co widzę to pierwsze masz pewnie gdzieś w widoku, a w kontrolerze definiujesz to drugie.

Poza tym dane w kontrolerze z paginacją pobieraj nie przez User.find, tylko przez User.paginate

Oczywiscie ze: paginate, a nie find - zagalopowalem sie.

@users = User.paginate :page => params[:page], :order => 'created_at DESC'

[quote=Tomash]Co ma @community do @users? Z tego co widzę to pierwsze masz pewnie gdzieś w widoku, a w kontrolerze definiujesz to drugie.
Poza tym dane w kontrolerze z paginacją pobieraj nie przez User.find, tylko przez User.paginate[/quote]
wywnioskowałem z:

collection_name = "@#{controller.controller_name}" collection = instance_variable_get(collection_name) raise ArgumentError, "The #{collection_name} variable appears to be empty. Did you " + "forget to specify the collection object for will_paginate?" unless collection
community to kontroler rysica, tak?

co nie zmienia faktu, że nie to było problemem.

pozdrawiam

Wracając do meritum sprawy…

A masz w ogóle Subversion?

Nooo, to teraz mnie zamieszaliscie :stuck_out_tongue_winking_eye: Juz nie wiem jak sie powinno tego uzywac :]

Robie tak…

w kontrolerze community:

@users = User.paginate :page => params[:page], :order => 'created_at DESC'

w widoku:

<%= will_paginate @users %>

i wtedy dostaje blad:

The @community variable appears to be empty. Did you forget to pass the collection object for will_paginate?

EDIT

Sorki, wstawialem

<%= will_paginate @users %>

jeszcze zanim wybieralem jakas litere do wyznaczenia uzytkownikow.

Teraz jest to w dobrym miejscy i dostaje bla:

undefined method `total_pages' for #<Array:0x388d9b8>

[quote=rysic]Sorki, wstawialem

<%= will_paginate @users %>

jeszcze zanim wybieralem jakas litere do wyznaczenia uzytkownikow.

Teraz jest to w dobrym miejscy i dostaje bla:

undefined method `total_pages' for #<Array:0x388d9b8>

[/quote]


a zwłaszcza:

pozdrawiam

Dzieki punkracy!

To, co mi dales naprowadzilo mnie na inne zrodlo, w ktorym tez ktos zrobil taki prosty blad jak ja :slight_smile: (nadpisanie gdzies tego co paginate zwrocilo do @users). Wielkie dzieki dla wszystkich za pomoc z paginacja :slight_smile:

Pozdrawiam