Rails2.3 ではURL中の ; はパラメターの区切りに解釈されるようだ
Rails2.3にポートしたアプリに思わぬバグが発生したので調べたところ、URL中の ; (セミコロン)の解釈が従来と変わったようです。
- Rails2.1.2
GET http://localhost/redirects/887308412?a=3;b=2 の場合 Parameters: {"a"=>"3;b=2", "action"=>"show", "id"=>"887308412", "controller"=>"redirects"}
- Rails2.3.2
GET http://localhost/redirects/887308412?a=3;b=2 の場合 Parameters: {"a"=>"3", "b"=>"2", "action"=>"show", "id"=>"887308412", "controller"=>"redirects"}
検索してみると URI属性値のセミコロン記号: ナマズのブログによると W3Cは フォームの項目区切りに「&」の代用としての「;」をサポートするよう推奨しているようです。
Rails2.3(たぶんRack)はそう解釈するんですね。