Problem ze stronicowaniem

Przejdę od razu do rzeczy:

Mam dwie tabele: users, categories oraz modele dla nich: user, category. Dodatkowo utworzyłem tabele łączącą: categories_users zawierającą dwa pola: category_id i user_id.

Wszystko poustawiane i złączenie działa(has_and_belongs_to_many dla obu modeli). W danej kategorii dla akcji show chciałbym wyświetlać użytkowników, którzy do niej należą używając paginacji(stronicowania), pytanie jak to zrobić? Próbowałem ale się nie udaje :-/ Z góry dziękuje za odpowiedź

Zapytaj z drugiej strony asocjacji, masz wtedy pelna kontrole. Pytanie od strony kategorii ma sens przy niewielkich rozmiarach danych np. gdy chcemy wylistowac role do ktorych przynalezy user mozemy swobodnie @user.roles, lub dokonywac jakichs wstawien.

@categorized_users = User.find(:all, :include => :categories, :conditions => ["categories.id = ?", @category.id], :order => "users.login", :page => {:size => 10, :first => 1, :current => (params[:page] || 1)})
Uzywaj raczej (jak w ww. przykladzie) paginating_find niz defaultowe paginacje w Rails (kt. zreszta w 2.0 maja byc usuniete).

README do paginating_find

A tutaj jest pelny przyklad jak uzywac w widokach.

Unknown key(s): page

hmm…, działa :page dla metody find() ??

Dziala gdy uzywasz paginating find, :page i :current to dodatki.

Dodatkowo @categorized_users to enum (PagingEnumerator)

Wielkie dzięki! Działa :slight_smile: