图老师小编精心整理的rails制作rss feed希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~
【 tulaoshi.com - Web开发 】
在网上Google了很多次,能找到用rails制作rss,但是总是找不到完整的。今天把完整的过程抄录在这里:
方法A:
就是你自己把RSS XML的格式拼凑好,输出.并设置HTTP Header ,标记content-type为application/XML,常见的代码:
#Post_controller::feed()
def feed
require "rss"
articles = Article.find :all, :order = 'post_date DESC', :limit = 10
feed = RSS::Maker.make("2.0") do |maker|
maker.channel.title = "Gang of Technology"
maker.channel.description = "Gang of Technology site"
maker.channel.link = "http://up-u.com"
maker.items.do_sort = true
articles.each do |article|
item = maker.items.new_item
item.link = "http://www.***.com/archives/#{article.id}"
item.title = article.title
item.date = article.post_date
item.description = ""
end
end
send_data feed.to_s, :type = "application/rss+xml", :disposition =
'inline'
end
方法B:
Rails Controller-Action 代码:
#Post_controller::feed
def feed
@posts=Post.find :all,:limit=id desc
end
erb模板:
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)xml.instruct!
xml.rss(version=2.0″,
xmlns:dc=http://purl.org/dc/elements/1.1/) do
xml.channel do
xml.title renlu.xu ’s blog
xml.link(url_for(:action=start,:only_path=false))
xml.description My life My love
xml.language zh_CN
xml.ttl 60
for event in @posts do
xml.item do
xml.title(event.title)
xml.description(event.body)
xml.pubDate(event.created_at.to_s(:rfc822))
xml.guid(event.id)
xml.link(http://..#{event.id})
end
end
end
end
这种方法 网上很多文章到这一步就算完了,没有下文了,其实不对。到这一步,访问http://localhost:3000/post/feed仍然是出来的html的界面。g之,找到介绍:rails 2.0会根据不同的格式对模板进行渲染。这段代码放在/views/post/feed.rhtml中是没有用的,需要放在/views/post/feed.atom.builder中,并且需要通过http://localhost:3000/post/feed/123.atom(这里123没有什么实际意义 随便抓的一个),或是http://localhost:3000/post/feed?format=atom才能正确地按rss+xml输出。
来源:http://www.tulaoshi.com/n/20160220/1632341.html
看过《rails制作rss feed》的人还看了以下文章 更多>>