[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(DTPtechNote:1392) [ruby]CGIのパラメータ



いったいいつの話だというような話だけど、
rubyの1.6系と1.8系ではCGIのパラメータの読み方が変わっていた。
っていうことに気がつくまでちょっと時間がかかってしまった^^
だって、前のサーバーだと普通に動いていたから。。。(いいわけ

require "cgi"
cgi = CGI.new
values = cgi['field_name'] 

で、field_nameが複数ある場合、1.6系だと配列として取れていたからeachで回せたのに、
values.class
はStringだった^^
でもvalues[0]とかだと、ちゃんと値が取れるから、配列だと思い込んでしまった。

ちゃんと方法は用意されていて、こういう時は
values = cgi.params['field_name'] 
と書くみたい。
ちなみに
values = cgi['field_name'].to_a
と書いて期待どおりに振る舞った。

ちょっとググったらすぐにいくつか出てきたので、参照してください。
http://www.ruby-lang.org/ja/man/?cmd=view;name=cgi;em=CGI
http://lists.sourceforge.jp/mailman/archives/sirius-devel/2003-September.txt