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"}) %>