トップ «前の日記(2007/01/20 (土) ) 最新 次の日記(2007/01/22 (月) )» 編集 RSS feed

HsbtDiary


2007/01/21 (日) [長年日記]

[TextDrive][Rails][ruby][RSS]バカが征く on Rails on TextDrive(2)

RSS の出力部分を少しいじってみた。RSS の場合、記事が更新されるまでアクセスのたびに Controller 側で動的生成する必要はないので、Module: ActionController::Caching::Pagesを使ってキャッシュファイルを生成するようにしてみた。

まずは config/environment/development.rb を下記のように書き換えてキャッシュ機能を有効にする。

config.action_controller.perform_caching             = true

そのあとに Controller をいじり始める。最初、何も考えずに entry_controller.rb の先頭を

class EntryController < ApplicationController
   caches_page :index, :rss

という風にしていたんだけど、これだと生成されるキャッシュファイルが rss.html となってしまいかっこわるい。対策として色々探してみたらrails:1310に参考情報があったので

 class EntryController < ApplicationController
    def rss
       …
       self.class.cache_page render_to_string(:text => rss, :layout => false), '/entry/rss.xml'
       render :text => rss, :layout => false
    end
 end

という形で、entry/rss にアクセスした場合のみキャッシュファイルの拡張子を xml として作成するようにしてみた。

あとは、content_encoded にデータを入れる時に pre タグで囲むようにしたり description を60文字に省略するようにしたりなんだり。後はプロキシ周りの設定をやればひとまずはよさげかなあ。

過去のエントリ

[TV]あるあるのアレ

テレビやネットから1次情報を入手して、それが全てと信じ込んで試している人は別にどうでもいいとして、その人から2次情報として口コミで聞いた人が広めた人に対してどういう対応をするのかが気になる。いや、むしろ1次情報を鵜呑みにして、さんざん口コミで広げまくった人の対応の方が気になるな。あれは間違いでしたと広めた人に対して謝ったりするのだろうか、それとも1次情報が間違ってたんだから自分が悪いんじゃないと居直ったりするのだろうか。

マイナスイオンやゲーム脳や、今回のダイエットの話でも何でもいいけど、こういうのを見るたびに自分が実証したもの以外を話題にするのは危険だなあと思う。が、飲み会とか日常のなんてことない会話で共通性があるのって自分が実証(体験)したもの以外の話題なんだよな。で、そういう話題が繰り広げられている時に「でもそれって何の根拠もありませんよね」とか「いや、科学的に効果があるわけがありませんから」とか言うと、言った方が「空気読め」とののしられたり。

とかくこの世は住みにくい

[TextDrive][Rails][ruby][RSS]バカが征く on Rails on TextDrive(3)

TextDriveに用意されている Webmin 経由からの設定ではなく、.htaccess にマッピングについて直書きしたらなんてことなく終了した。書いたのはこんな感じ。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^bakagaiku\.
RewriteRule (.*) http://127.0.0.1:8200/$1 [P]

これで、 http://bakagaiku.hsbt.org/ にアクセスすると lighttpd + Rails の環境になる。なんか、RSS Auto-Discovery で指定されている URI が http://www.hsbt.org:8200/entry/rss と、ポート番号付の方になっているのが気持ち悪い。これは Rails にある

<%= auto_discovery_link_tag :rss, :controller => 'entry', :action => 'rss' %>

を使って埋め込んでいるんで、どっかの設定だけで解決しそう。

今日はもう情熱大陸+世界遺産の時間なので、この辺はそのうちやろう。

過去のエントリ