【ruby on rails】rubyでRSSを生成する。
なかなかうまく行かなかったが、なんとかそれっぽくなった。
結局、RSS::Makerを使う方法とBuilder::XmlMarkupを使う方法両方で試した。
■rss/maker
def new
require 'rss/maker'
rss = RSS::Maker.make("2.0") do |maker|
# channelの設定
maker.channel.about = url_for(:controller=>"rss", :action=>"new")
maker.channel.title = "ぐだろぐ"
maker.channel.description = "日記やメモなど、ぐだぐだ書いていくソーシャルネットワークに疲れた人向けのサービスです。"
maker.channel.link = url_for(:controller=>"top")
maker.channel.language = "ja"
# RSSのitemを更新日が新しい順番にソート
maker.items.do_sort = true
maker.items.max_size = 15
# itemの設定
Log.find(:all, :order=>"created_on DESC", :limit=>15).each do |log|
item = maker.items.new_item
item.title = log.title
item.link = url_for(:controller=>"log", :action=>"show", :id=>log.id)
item.dc_subject = url_for(:controller=>"log", :action=>"show", :id=>log.id)
item.description = short_text(log.text, 200)
item.date = Time.parse(log.created_on)
end
end
@headers["Content-Type"] = 'application/xml; charset=UTF-8'
render :text => rss.to_s, :layout => false
end
■Builder::XmlMarkup
def new
xml = Builder::XmlMarkup.new
xmlobj = xml.rss("version" => "2.0", "xmlns:dc" => "http://purl.org/dc/elements/1.1/") do
xml.channel do
xml.title("ぐだろぐ")
xml.link(url_for(:controller=>"top"))
xml.description "日記やメモなど、ぐだぐだ書いていくソーシャルネットワークに疲れた人向けのサービスです。"
xml.language "ja"
xml.ttl "60"
Log.find(:all, :order=>"created_on DESC", :limit=>15).each do |log|
xml.item do
xml.title(log.title)
xml.description(short_text(log.text, 200))
xml.pubDate(log.created_on)
xml.link(url_for(:controller=>"log", :action=>"show", :id=>log.id))
xml.tag!("dc:creator", "ぐだろぐ")
end
end
end
end
render :xml => xmlobj
end
どちらも、テンプレートは使用せずに出力します。
■参考はこちら
http://underrails.seesaa.net/article/55274391.html
http://techno.hippy.jp/rorwiki/?Wiki%A4%F2%BA%EE%A4%C3%A4%C6%A4%DF%A4%EB%2FRSS%A5%D5%A5%A3%A1%BC%A5%C9%A4%F2%BA%EE%A4%EB
あと、rss出力時のcontent-typeを何にすればいいか迷ったが、
どうやらapplication/xmlがいい感じです。
■参考
http://www.hyuki.com/d/200404.html
閲覧:2185回 Sun Nov 11 23:30:05 +0900 2007
このログへのコメント(0件)
コメント投稿フォーム
トラックバック
関連ログ
- 【ruby on rails】file_columnを使った画像ファイルのアップロード
- 【ruby on rails】acts_as_authenticatedで認証
- 【ruby on rails】start_form_tag / form_tag
- 【ruby on rails】railsのHTMLヘルパーに悩む
- 【ruby on rails】submit_tagに確認ダイアログをつける方法
- 【ruby on rails】改行コードをBRコードに変換するには
- 【ruby on rails】rake db:migrate
- 【ruby on rails】link_toヘルパーにclassを指定するには
- 【ruby on rails】image_uploadプラグイン
- rubyでのメールアドレスとURLを抽出する正規表現
