Je suis assez nouveau pour Rails 3, et j'essaie de créer un flux RSS/Atom. Je connais auto_discovery_link_tag , mais quel est le contrôleur associé/l'action censée ressembler?
Merci!
Auto_discovery_link_tag est un bon début. Une recherche rapide sur Google et j'ai trouvé des articles de blog sur Comment créer un flux RSS dans Rails . Permettez-moi de vous expliquer à quoi devrait ressembler votre contrôleur/action associé:
controllers/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:
views/posts/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à que toute la magie Railsy se produit. Ici, le flux RSS XML est généré et renvoyé à HTTP.
Utilisation de l'auto_discovery_link_tag:
Dans le contrôleur:
respond_to do |format|
format.html
format.atom {render action: 'index', layout: false}
end