From: matz@... (Yukihiro Matsumoto) Date: 2003-07-23T18:27:48+09:00 Subject: [ruby-list:37955] Re: multipart/form-dataのためのcgi.rbの修正 まつもと ゆきひろです In message "[ruby-list:37954] Re: multipart/form-dataのためのcgi.rbの修正" on 03/07/23, nobu.nakada@nifty.ne.jp writes: |> stringioまたはtempfileの場合、そのまま返す |> 文字列の場合、CGI::Valueでwrap |> |> という点については合意できてると思います。問題は |> |> nilの場合、nilを返す |> nilの場合、CGI::Valueで""をwrap |> |> のいずれにするべきかという点だったのですが。 | |+ Value.new(value, params) if value.is_a?(String) | |だけだとelseがないのでnilになるかなと思ったんですが、ここの |valueってstringioとかとは関係ないんでしたっけ。勘違いしてたらす |いません。 元のコードは単純なミスだと思います。 意図は def [](key) params = @params[key] value = params[0] if value.is_a?(String) Value.new(value, params) else value end end だと解釈しました(余計なお世話?)。 で、私はそれに value = params[0] || "" という修正も加えたほうが良いかなと。