From: TAKAISHI Hayato Date: 2003-10-28T21:58:54+09:00 Subject: [ruby-list:38692] Re: cgi.params のデフォルト値 こんにちは、高石です。 From: Kazuhiro Yoshida Subject: [ruby-list:38689] cgi.params のデフォルト値 > cgi.rb: > def CGI::parse(query) > params = Hash.new([]) > になってますが > params = Hash.new{|hash,key|hash[key]=[]} > にすべきでは? このようにすると、 params = Hash.new{|hash,key|hash[key]=[]} p params.has_key?('hoge') # => false hoge, = params['hoge'] p params.has_key?('hoge') # => true と、元は未定義であったものが、参照しただけで定義されてしまう ようです。 各フィールドの値をローカル変数に代入してから、入力フォームに 存在しているフィールドのリストを得ようとするとはまりそうです。 例えば cgi.rb 内のサンプル。 # == Examples of use # # === Get form values # # require "cgi" # cgi = CGI.new # value = cgi['field_name'] # <== value string for 'field_name' # # if not 'field_name' included, then return "". # fields = cgi.keys # <== array of field names /--------------------------------------------------------/ 高石 勇人 < rio-t@presen.to > PGP Key(RSA): http://rio-t.presen.to/pgp/mykey.asc (DSS): http://rio-t.presen.to/pgp/mykey-dss.asc /--------------------------------------------------------/