Ein wunderbarer Helfer für das Blättern in einer ActiveRecord-Collection ist “will_paginate”,
das für den Normalfall auch einfach zu installieren und anzuwenden ist. Zur Einführung sei hier auf den Railscast verwiesen: http://railscasts.com/episodes/51 .
Etwas unübersichtlich wird es aber, wenn es darum geht, dieses Plugin für Ajaxlinks und bestehende Arrays bzw. Collections anzupassen. Daher will ich die Vorgehensweisen hier kurz zusammenfassen. Ich beziehe mich hierbei auf RAILS 2.1.0 und will_paginate 2.3.2 , bei älteren Versionen ist die Wahrscheinlichkeit ziemlich groß, das irgend etwas nicht funktioniert.
aus diesem Blog entnommen:http://weblog.redlinesoftware.com/2008/1/30/willpaginate-and-remote-links
Die Klasse RemoteLinkRenderer wird in helpers in der Datei remote_link_renderer.rb definiert:
class RemoteLinkRenderer
def prepare(collection, options, template)
@collection = collection
@options = options @template = template
@remote = @options[:params].delete(:remote) || {}
# reset values in case we’re re-using this instance @total_pages = @param_name = @url_string = nil
end
def page_link_or_span(page, span_class = ‘current’, text = nil)
text ||= page.to_s
if page and page != current_page
@template.link_to_remote(text, {:url => url_for(page),
:method => :get}.merge(@remote),
{:href => url_for(page),:title => “Seite #{page}”})
else
@template.content_tag :span, text, :class => span_class
end
end
end
Im View wird will_paginate mit dem Parameter renderer aufgerufen:
Ohne “renderer” wird die Standardfunktion ausgeführt.