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 '« 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 '« 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