Sono abbastanza nuovo su Rails 3 e sto cercando di creare un feed RSS/Atom. Conosco lo auto_discovery_link_tag, ma qual è il controller/azione associato che si suppone assomigli?Come posso creare un feed RSS/Atom in Rails 3?
Grazie!
Sono abbastanza nuovo su Rails 3 e sto cercando di creare un feed RSS/Atom. Conosco lo auto_discovery_link_tag, ma qual è il controller/azione associato che si suppone assomigli?Come posso creare un feed RSS/Atom in Rails 3?
Grazie!
Auto_discovery_link_tag è un buon inizio. Una rapida ricerca su Google e ho trovato post sul blog su How to Create an RSS feed in Rails. Lascia che ti riempio su ciò che si suppone il controller/azione associata a guardare come:
controllori/posts_controller.rb
def feed
@posts = Post.all(:select => "title, author, id, content, posted_at", :order => "posted_at DESC", :limit => 20)
respond_to do |format|
format.html
format.rss { render :layout => false } #index.rss.builder
end
end
Il nome di questo file deve corrispondere al controllore. Vedi, qui di seguito:
views/messaggi/feed.rss.builder
xml.instruct! :xml, :version => "1.0"
xml.rss :version => "2.0" do
xml.channel do
xml.title "Your Blog Title"
xml.description "A blog about software and chocolate"
xml.link posts_url
for post in @posts
xml.item do
xml.title post.title
xml.description post.content
xml.pubDate post.posted_at.to_s(:rfc822)
xml.link post_url(post)
xml.guid post_url(post)
end
end
end
end
Questo è dove tutta la magia Railsy accade. Qui, il feed RSS XML viene generato e restituito a HTTP.
Utilizzando l'auto_discovery_link_tag:
Nel controllore:
respond_to do |format|
format.html
format.atom {render action: 'index', layout: false}
end
ha fatto questo lavoro per voi? – thatmiddleway
Grazie Matt, ha senso, non avevo mai sentito prima il file .builder. Per chi si interroga su Atom, ho appena fatto una ricerca per "rails atom.builder" e ho ottenuto un frammento di codice dall'aspetto molto simile, ma per atom. (http://www.papodenerd.net/creating-atom-feeds-with-ruby-on-rails/) – simonista
Per quanto mi auguro tu abbia scelto Atom su RSS, ti consiglio di utilizzare solo uno di questi. Rappresentano le stesse informazioni e la maggior parte del supporto di libreria di analisi dei feed moderni, quindi sono a posto :) Controlla queste best practice: http://blog.superfeedr.com/Feeds/RSS/Atom/Best%20Practice/ feed-publishing-best-practice/ –
Julien, sono d'accordo che le persone dovrebbero sceglierne una e seguirla. Volevo solo fornire le stesse informazioni per Atom in modo che fosse facile per qualcuno sceglierne una dopo aver letto questa pagina. – simonista