Je suis un peu nouveau sur Rails 3, et j'essaye de créer un flux RSS/Atom. Je connais environ auto_discovery_link_tag, mais à quoi ressemble le contrôleur/action associé?Comment créer un flux RSS/Atom dans Rails 3?
Merci!
Je suis un peu nouveau sur Rails 3, et j'essaye de créer un flux RSS/Atom. Je connais environ auto_discovery_link_tag, mais à quoi ressemble le contrôleur/action associé?Comment créer un flux RSS/Atom dans Rails 3?
Merci!
Auto_discovery_link_tag est un bon début. Une recherche rapide sur Google et j'ai trouvé des billets de blog sur How to Create an RSS feed in Rails. Permettez-moi de vous remplir ce que votre contrôleur associé/l'action est censé ressembler à:
contrôleurs/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
Le nom de ce fichier doit correspondre au contrôleur. Voir, ci-dessous:
vues/messages/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
C'est là toute la magie Railsy arrive. Ici, le flux RSS XML est généré et renvoyé à HTTP.
Utilisation du auto_discovery_link_tag:
Dans le contrôleur:
respond_to do |format|
format.html
format.atom {render action: 'index', layout: false}
end
cela a-t-il fonctionné pour vous? – thatmiddleway
Merci Matt, c'est logique, je n'avais jamais entendu parler du fichier .builder auparavant. Pour ceux qui s'interrogent sur Atom, je viens de faire une recherche pour "rails atom.builder" et j'ai obtenu un fragment de code très similaire, mais pour atom. (http://www.papodenerd.net/creating-atom-feeds-with-ruby-on-rails/) – simonista
Autant que je souhaite que vous ayez choisi Atom sur RSS, je vous recommande de n'en utiliser qu'un seul. Ils représentent les mêmes informations et la plupart des bibliothèques d'analyse de flux modernes prennent en charge les deux, donc ils sont prêts à partir :) Consultez ces bonnes pratiques: http://blog.superfeedr.com/Feeds/RSS/Atom/Best%20Practice/ feed-publishing-best-practices/ –
Julien, je suis d'accord que les gens devraient juste en choisir un et y aller avec. Je voulais juste fournir la même information pour Atom afin qu'il soit facile pour quelqu'un de choisir l'un ou l'autre après avoir lu cette page. – simonista