Ich verwende in einer Anwendung für die Paginierung Kaminari, das auf ARec-Model-Klassen die Scopes #page und #per definiert. Das ist schon mal ein guter Anfang, aber lästig ist es schon, wenn ich in Controllern ständig schreiben muss
Foo.page(params[:page]).per(20) Es ist immerhin möglich, für Model-Klassen mit paginates_per einen Defaultwert für die Anzahl der Listenelemente pro Seite festzulegen. Aber diese Definition steht an der falschen Stelle, jedenfalls für meinen Zweck: Die Anzahl pro Seite hängt bei mir gerade nicht vom Model ab, sondern vom Controller. Auf Controller-Ebenen würde ich daher gerne schreiben paginates :foo, :per => 20 paginates :bar, :per => 10 und dann in den Action-Methoden Foo.paginated wobei paginated die Werte für "per Seite" und params[:page] aus dem Kontext des Aufrufers holen soll. Anders gesagt, ich hätte gerne Variablen mit dynamischem Scope, nicht dem in Ruby üblichen statischen Scope. Simulieren kann man das ansatzweise so class ActiveRecord::Base def self.paginated(&block) params = eval("params", block.binding) page(params[:page] end end Diese Methode muss dann aber als Foo.paginated {} aufgerufen werden, damit es einen Block gibt, dessen Binding man sich hinterrücks greifen kann. Abgesehen davon ist eval furchtbar unschön. Um diese ganzen Schwierigkeiten zu umgehen, kann man die Paginierung natürlich auch im Controller definieren und dann schreiben paginated(Foo) So mache ich das auch, aber die andere Schreibweise gefällt mir viel besser. Hat jemand einen Vorschlag, wie man sie ermöglichen könnte? Michael -- Michael Schuerig mailto:mich...@schuerig.de http://www.schuerig.de/michael/ _______________________________________________ rubyonrails-ug mailing list rubyonrails-ug@headflash.com http://mailman.headflash.com/listinfo/rubyonrails-ug