cgi-Rubyのメソッドの戻り値の型を整理(1.8)

いつもごちゃごちゃになるので。

cgi = CGI.new #CGIオブジェクト。
hash = cgi.params #ハッシュ
values = hash['name'] #配列。存在しない場合は[](空配列)
field_values = cgi['field_name']   #文字列。存在しない場合は""(空文字列)

ただ、paramsはRuby1.6との互換のためにある雰囲気なのであまり使わない方がいいかもしれない。
ここを参照:cgi-Rubyリファレンスマニュアル#footmark-2

Cookie

cgi = CGI.new
cookies_values = cgi.cookies['name'] #配列。存在しない場合は[](空配列)

これが配列だというのをよく忘れてハマる。
まあCookieはメインのKEY=VALUEの他に、expires、domain、path、secureといった情報を含んでいるから当然なんだけど。たいがいは

cgi.cookies['name'][0]

としておけば欲しい情報を取れる。