当前位置: 首页 > 图文教程 > 网络编程 > Javascript > rails制作rss feed

Javascript
QQ邮箱的一个文本编辑器代码
Z-Blog中用到的js代码
绝对经典的滑轮新闻显示(javascript+css)实现
用js实现的仿sohu博客更换页面风格(简单版)
仿Vista进程条效果
用Javascript判断图片是否存在,不存在则显示默认图片的代码
用JQuery 实现的自定义对话框
jQuery使用手册之三 CSS操作
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
贴图转换+转贴工具用到的js代码超级推荐
超级简单的图片防盗(HTML),好用
现代 javscript 编程 资料
超级可爱纯js网页时钟
Dojo之路:如何利用Dojo实现Drag and Drop效果
AJAX架构之Dojo篇
发两个小东西,ASP/PHP 学习工具。 用JavaScript写的
使用prototype.js 的时候应该特别注意的几个问题.
一个已封装好的漂亮进度条
漂亮的widgets,支持换肤和后期开发新皮肤
用javascript实现的仿Flash广告图片轮换效果

Javascript 中的 rails制作rss feed


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 332 ::
收藏到网摘: n/a

在网上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模板:

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输出。