たろマーク (はてなブックマーク)
-
[ ruby ][ rails ][ cms ] RESTful なのいいな
-
[ ar ] 楽しそう。宝物を置かせてもらったお店とかは宣伝になったりするのかな。
-
[ yokohama.pm ][ waf ]
-
[ ruby ]
■ Catalyst でテンプレートファイルがあったら表示するの術
スタティックな html 置くにしても、tt でモジュール化したのを上手く使いたいよねー、と言うことでちょっと考えてみた。
Root コントローラでこんな風に書くと、アクセスされた path に対応するテンプレートが /root/src/ 以下にあったら表示するようにできた。表示したいテンプレートの拡張子を .tts に限るようにしてるので、普段使ってるテンプレートが不意に見えてしまうことはないと思う。
sub default : Private {
my ( $self, $c ) = @_;
my $template = $c->req->path . '.tts';
if ( -s $c->path_to( '/root/src/' . $template ) ) {
$c->stash->{template} = $template;
return;
}
$c->res->status(404);
}
ちなみに Root#default で 404 Not Found にしてるのはこちらのアイデアをいただきました。
追記(2007-10-06T19:03:57+09:00)
id:holidays-l さんからご指摘いただきました。
$c->req->path より $c->action の方が良いとのことです。
トラックバック
このエントリーのトラックバックURL:
http://vkgtaro.jp/cgi-bin/mt/mt-tb.cgi/610
この一覧は、次のエントリーを参照しています: Catalyst でテンプレートファイルがあったら表示するの術:
» [Perl][Catalyst]Re: Catalyst でテンプレートファイルがあったら表示するの術 from holidays-l開発ブログ
(タイトル考えるのって面倒) my $template = $c->req->path . ’.tts’; [僕] Catalyst で... [詳しくはこちら]




