From: Fujioka Date: 2006-09-26T09:29:28+09:00 Subject: [ruby-dev:29601] cgi.rbのformの挙動 藤岡です。 cgi.rbでformにmethodまたはenctypeを渡すときに 小文字でキーを渡すとmethodの項目が重複します。 これはバグですよね? $ echo |ruby -rcgi -e 'puts CGI.new("html3").form("method"=>"post")'
そして、getを小文字でキーを書いて"method"=>"get"などと渡した場合には postとgetの両方が存在してしまいます。 $ echo |ruby -rcgi -e 'puts CGI.new("html3").form("method"=>"get")'
キーが大文字の場合は大丈夫です。 $ echo |ruby -rcgi -e 'puts CGI.new("html3").form("METHOD"=>"get")'
とりあえずパッチ --- /usr/lib/ruby/1.8/cgi.rb 2006-08-22 18:38:19.000000000 +0900 +++ cgi.rb 2006-09-26 09:19:24.464384096 +0900 @@ -1542,10 +1542,10 @@ { "METHOD" => method, "ACTION" => action, "ENCTYPE" => enctype } else - unless method.has_key?("METHOD") + unless method.has_key?("METHOD") || method.has_key?("metho d") method["METHOD"] = "post" end - unless method.has_key?("ENCTYPE") + unless method.has_key?("ENCTYPE") || method.has_key?("enct ype") method["ENCTYPE"] = enctype end method