Soy bastante nuevo en Rails 3, y estoy tratando de hacer un feed de RSS/Atom. Sé de auto_discovery_link_tag, pero ¿cómo se supone que debe ser el controlador/acción asociado?¿Cómo realizo una alimentación de RSS/Atom en Rails 3?
Gracias!
Soy bastante nuevo en Rails 3, y estoy tratando de hacer un feed de RSS/Atom. Sé de auto_discovery_link_tag, pero ¿cómo se supone que debe ser el controlador/acción asociado?¿Cómo realizo una alimentación de RSS/Atom en Rails 3?
Gracias!
Auto_discovery_link_tag es un buen comienzo. Una búsqueda rápida en Google y encontré publicaciones de blog en How to Create an RSS feed in Rails. Déjame que usted completa en lo que se supone que su controlador/acción asociada a parecerse a:
controladores/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
El nombre de este archivo debe coincidir con el controlador. Ver, a continuación:
vistas/mensajes/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
Aquí es donde sucede toda la magia Railsy. Aquí, el XML de la fuente RSS se genera y se devuelve a HTTP.
Utilizando el auto_discovery_link_tag:
En el controlador:
respond_to do |format|
format.html
format.atom {render action: 'index', layout: false}
end
¿esto funcionó para usted? – thatmiddleway
Gracias Matt, eso tiene sentido, nunca antes había escuchado sobre el archivo .builder. Para aquellos que se están preguntando sobre Atom, simplemente hice una búsqueda de "rails atom.builder" y obtuve un fragmento de código de aspecto muy similar, pero para átomo. (http://www.papodenerd.net/creating-atom-feeds-with-ruby-on-rails/) – simonista
Por mucho que desee que elija Atom sobre RSS, le recomendaría que use solo uno de estos. Representan la misma información y la mayor parte de la biblioteca de análisis de fuentes moderna admite ambos, así que están listos para ir :) Verifique estas prácticas recomendadas: http://blog.superfeedr.com/Feeds/RSS/Atom/Best%20Practice/ feed-publishing-best-practices/ –
Julien, estoy de acuerdo en que las personas deberían elegir una e ir con ella. Solo quería proporcionar la misma información para Atom para que sea más fácil para cualquiera elegir una después de leer esta página. – simonista