从Active Record 数据中生成 RSS Feesds
加入你的数据库中内容如下 :每条记录都含有经常变化的德销售信息。
在XML控制器中创建一个叫rss 方法,这个方法从Book 模型中提取信息到实例变量。
的XML。
加入你的数据库中内容如下 :每条记录都含有经常变化的德销售信息。
db/schema.rb:
ActiveRecord::Schema.define() do
create_table "books", :force => true do |t|
t.column "title", :string, :limit => 80
t.column "sales_pitch", :string
t.column "est_release_date", :date
end
end
在XML控制器中创建一个叫rss 方法,这个方法从Book 模型中提取信息到实例变量。
app/controllers/xml_controller.rb:
class XmlController < ApplicationController
def rss
@feed_title = "O'Reilly Books"
@books = Book.find(:all, :order => "est_release_date desc",
:limit => 2)
end
end
在rss 动作关联的视图上。使用BUilder 的XML 标记来构建RSS
的XML。
app/views/xml/rss.rxml:
xml.instruct! :xml, :version=>"1.0", :encoding=>"UTF-8"
xml.rss('version' => '2.0') do
xml.channel do
xml.title @feed_title
xml.link(request.protocol +
request.host_with_port + url_for(:rss => nil))
xml.description(@feed_title)
xml.language "en-us"
xml.ttl "40"
# RFC-822 dateime example: Tue, 10 Jun 2003 04:00:00 GMT
xml.pubDate(Time.now.strftime("%a, %d %b %Y %H:%M:%S %Z"))
@books.each do |b|
xml.item do
xml.title(b.title)
xml.link(request.protocol + request.host_with_port +
url_for(:controller => "posts", :action => "show", :id => b.id))
xml.description(b.sales_pitch)
xml.guid(request.protocol + request.host_with_port +
url_for(:controller => "posts", :action => "show", :id => b.id))
end
end
end
end