From: "NAKAMURA, Hiroshi" Date: 2000-06-22T13:12:23+09:00 Subject: [ruby-list:23451] Re: DBMS and ruby CGI なひです. > From: TAKEUCHi Kahori > Sent: Thursday, June 22, 2000 6:28 AM > eRuby スクリプトと言うと誤解を招きがちなので、通常使う Ruby-embedded > な HTML のことを eRuby HTML ファイルと呼ぶことにしています。(正式な > ものではなく勝手にそう言っているだけ) 御意. > > 3. 外部コマンドもしくはmod_erubyとしてerubyを使うと, > > 異常系の処理を書くのがかなり面倒. > > foo.rhtml解釈中に例外を捕まえたらerror.rhtmlに飛ばしたい.できません. > > できませんでしたっけ。ヘッダのコントロールはできたはずだと思いましたが…。 > それでは足りませんか?もしかして、何か邪道なのかしら。 Locationヘッダを利用する方法ですよね? 邪道とは思いませんが,その方法だと引数もbindingも渡せません (引数だけならなんとかなるかな...). ユーザ相手に「エラーだよ理由は不明」ってわけにもいかないので, これは使えません. # 「お客さまの入力された以下の発注内容は注文番号XXXXで承りましたが, # ○もしくは×の理由で受理できませんでした.注文番号と共に, # □までご連絡ください」 というわけで,以下のような対策が必要になると思います. 1. foo.rhtmlファイル(他全てのファイル)の中に, 例外をtrapしてerror.rhtmlを解析するようなコードを埋め込む. 2. 外部コマンドとしてerubyを起動してfoo.rhtmlを解析させ, その実行が終わるまで標準出力をアプリ側でキャッシュし,成功したらそれを送る. 途中で例外でもあがったなら再度erubyを起動してerror.rhtmlを解析させる. これだったら,ライブラリとして使えるERbのほうが,楽だと思いませんか? // NaHi