松尾です。 From: wakou / fsinet.or.jp > ありがとうございます。使い込まれている方のご意見はとてもありがたいです。 お役に立てて何よりです。 で、こちらなんですが、 > これに対しては cgi["name1"].to_s とすると、nil も to_s を持つという事 > から、name1 が含まれなかった場合もそのまま動いてしまう手がありますが、 > やはり本筋としては、cgi.has_key?("name1") などであらかじめチェックして > おくか、例外処理が手軽な事を利用して、rescue の方がいいような気がして > います。 ええ。でも。 チェックにしても、いい手がないかなぁと思っていました。CGIとしてデータ が入ってないことはよくあることなので、準正常系としてきちんと後始末する ようなパターンを確立したいのですが…。 業務ロジックルーチンが求めるのは、cgi["name1"][0]が定義域に含まれてい るかどうかということだけなので、cgi["name1"][0]にアクセスする前に余計 な手間をかけたくないんです。 if cgi.has_key?("name1") and cgi["name1"].kind_of?(Array) and !cgi["name1"].empty? then なんてチェックは出来れば省きたい。かといってRubyの発生する例外に任せて しまうのもちょっと避けたい。Rubyの発生する例外は別の意味で使いたいから。 "name1"に関するデータがなかったら、cgi["name1"] には [nil] を入れてお く、ってのはどうかな… なんて考えてたりします。もちろんデータの名前の 一覧(["name1",...])は先に渡しておかなければなりませんが。