Hallo Michael,

hmm, ok: Das grenzt das Problem zumindest schon mal weiter ein: Egal welches Plugin ich da jetzt benutze, das Problem ist immer, den richtigen Pfad zusammen mit dem Page-Parameter in den Link zu kriegen.

Das Problem mit den Nested-Resources ist, dass url_for hier nur den Controller-Namen nimmt, und nicht den Pfad zu dem Controller berücksichtigt: So generiert im Controller GlossaryEntries:

url_for( :action => :index, :page => '5') ------> http:// localhost:3000/glossaryEntries?page=5

statt:

http://localhost:3000/projects/1/glossaryEntries?page=5

url_for interessiert sich also nur für den Controller und nicht dafür, wie der Controller in routes.rb gemapped ist oder gerade aufgerufen wurde.

Wenn niemand eine saubere Lösung dafür parat hat, dann mach ich das jetzt erstmal ganz schmutzig und reich den Pfad in das pagination- partial mit rein und häng die Seite dann einfach an:

Also so für das Einbetten der Blätter-Navigation:

<%= render(:partial => 'parts/paginate', :locals => {:collection => @glossary_entries, :base_path => glossaryEntries_path(@project)}) %>

und so dann in dem partial, das die Navigation rendered:

<%= link_to '&#171; Zurück', "#{base_path}?page=# {collection.previous_page}" %>

Ist nicht schön, tut aber.

Viele Grüße und danke für den Hinweis!
Stefan




Am 30.07.2007 um 15:25 schrieb Michael Siebert:

Hallo Stefan,

Erfahrungen damit habe ich nicht, aber vielleicht möchtest du dir ja
mal das Plugin will_paginate anschauen von err (http://errtheblog.com/
oder mal nach will_paginate googeln). Das funktioniert bei mir
eigentlich immer verdammt gut, ich weiss aber nicht, wie es mit
verschachtelten resourcen zurechtkommt.
Das Problem wird da eher sein, dass er nicht über die named routes
geht, sondern über das standard url_for. Ich denke, da müsstest du
also selbst Hand anlegen an ein Plugin deiner Wahl und es entsprechend
erweitern (wenn das nicht schon jemandem eingefallen ist...)

mfg

Am 30.07.07 schrieb Stefan Frank <[EMAIL PROTECTED]>:
Hi,

hat jemand Erfahrung mit pagination-find[1] und dem dazugehörigen
application_helper[2]?

(Links:
[1] Paginating Find: http://cardboardrocket.com/pages/ paginating_find [2] Faster Pagination in Rails: http://www.igvita.com/blog/ 2006/09/10/
faster-pagination-in-rails/
)


Für eine ge-nestete Ressource puzzle ich gerade daran, die Links hier
richtig hinzubekommen:

Das Modell sieht so aus:
class Project < ActiveRecord::Base
        has_many: glossaryEntries
end

und gemapped in routes.rb ist es so:

map.resources :projects do |projects|
    # glossar
    projects.resources :glossaryEntries
end


Auf Controller-Ebene funktioniert das paginating prima, und lässt
sich auch über die URL schon ansteuern:

def index
@glossary_entries = GlossaryEntry.find(:all,
                                            :conditions =>
"[EMAIL PROTECTED]",
                                            :page => {:size =>
10,   :current => params[:page]}
                                           )
....
end

Der Helper aus [2] generiert auch den Seiten entsprechende Links,
allerdings immer mit:

<%= link_to '&#171; Zurück', { :page => collection.previous_page } %>

was die URL:
http://localhost:3000/glossaryEntries?page=2

erzeugt - der ge-nestete Pfad fehlt da also drin - hat jemand ne
Ahnung, wie man ihm das beibringen kann und auch genestete Ressourcen
richtig paged?!

Danke im Voraus für jeden Hinweis!
Stefan



_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug



--
Siebert Webdesign
Michael Siebert
Trappenweg 6, 15749 Mittenwalde, Deutschland
_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug

_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug

Antwort per Email an