Jak zrobić kanał RSS / Atom w Rails 3?
Jestem całkiem nowy w Rails 3, i próbuję zrobić kanał RSS / Atom. Wiem o auto_discovery_link_tag , ale jak powinien wyglądać skojarzony kontroler/akcja?
Dzięki!
51
Author: Jonathan Allard, 2010-10-17
2 answers
Auto_discovery_link_tag to dobry początek. Szybkie wyszukiwanie w Google i znalazłem wpisy na blogu Jak stworzyć kanał RSS w Rails . Pozwól, że przedstawię Ci, jak powinien wyglądać twój kontroler/akcja:
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
Nazwa tego pliku powinna pasować do kontrolera. Zobacz, poniżej:
Views / posts / feed.rss.budowniczy
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
Tutaj dzieje się cała magia Railsy ' ego. Tutaj generowany jest kanał RSS XML i powrót do HTTP. 77
Author: Matt Lennard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-20 14:31:37
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-20 14:31:37
Użycie auto_discovery_link_tag:
W kontrolerze:
respond_to do |format|
format.html
format.atom {render action: 'index', layout: false}
end
5
Author: thatmiddleway,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-15 22:28:07
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-15 22:28:07