Valider RSS-Feed mit Ruby on Rails

Im Netz habe ich einige Anleitungen gefunden, wie man Feeds mit Ruby on Rails erzeugt, die Ergebnisse fand ich aber entweder unzureichend oder sie waren nicht valide laut W3C. Deshalb hier der Code für den RSS-Feed, den man bei BookReporter.de findet.

Code im Controller:

def rss
@nachrichten = Nachricht.find(:all, :conditions => ["aktiv = 1"], :order=>"created_at DESC", :limit => 20)
render_without_layout
end

Und hier die View (rss.rxml):

xml.instruct!

xml.rss "version" => "2.0", "xmlns:atom" => "http://www.w3.org/2005/Atom" do
xml.channel do

xml.title       "BookReporter.de Nachrichten und Termine"
xml.link        url_for :only_path => false, :controller => 'nachrichten'
xml.description "BookReporter.de: Letzte 20 Nachrichten und Termine."
xml.language('de-de')
xml.tag!("atom:link", "href" => url_for(:only_path => false, :controller => 'nachrichten', :action => 'rss'), "rel" => "self", "type" => "application/rss+xml")
xml.pubDate      @nachrichten.first.created_at.rfc2822

@nachrichten.each do |n|
xml.item do
xml.title       n.titel
xml.link        url_for :only_path => false, :controller => 'nachrichten', :action => 'show', :id => n
xml.description truncate(textilize(n.hauptteil), length = 255, truncate_string = link_to("...",:only_path => false, :controller => 'nachrichten', :action => 'show', :id => n))
xml.guid        url_for :only_path => false, :controller => 'nachrichten', :action => 'show', :id => n
xml.pubDate     n.created_at.rfc2822
end
end

end
end

Jetzt muss noch folgender Code ins Layout und fertig ist der Feed:

<%= auto_discovery_link_tag(:rss, {:action => "rss", :controller=>"nachrichten"}, {:title =>"BookReporter.de Nachrichten und Termine"}) %>

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert