TOPに戻る
鬱るんです
躁鬱病のITエンジニア「はまー」が心と体の模様を記した雑記帳。 大手IT企業で心身ともにぼろぼろになり退職した後、ほそぼそと働いたり事業を立ち上げようとして頓挫したり、作業所に通ったり障害者雇用で働いたりと紆余曲折したが、今は無職な毎日。

Perlを用いたWebアプリ開発フレームワークのCatalystでアプリを作っているのだが、ViewにテンプレートツールキットのTTSiteを使用して、これはヘッダもフッタもCSSも全部自動でwrappingしてくれるし、Controllerのメソッドでtemplateを指定しなくてもPathから自動的にテンプレートファイルがレンダリングされるし、こりゃ便利だ、と思って使っていた。

しかし、このアプリの最後の仕上げとなる「入力したデータをCSVで保存する」というところでつまづいている。Catalyst::View::Download::CSVを使えば望みどおりダイアログが出て「このファイルを保存しますか?」と出る。それはViewディレクトリにDownload/CSV.pmというディレクトリ/ファイルを置くというインプリメンテーション。しかしViewディレクトリにTT以外のテンプレートを置いてしまうと、どうも他のメソッドがレンダリングされるときに、全部templateがMyApp::View::Download::CSV->processに流れてしまうのだ。手動でtemplateを指定しても、CSV->proccessに食われてしまう。そしてどの画面も真っ白。CSVの方を手動で出力しようとしても、TTSiteを使っている以上、どうしてもtemplateがwrappingされてしまう。う〜ん、行き詰まった。

これを読んで解決法が分かった方は大至急教えてください。粗品を進呈します。


コメントする

メールアドレスは公開されません

*は必須項目です