2011-12-05 19 views
0

redirect_toを実行中にERROR URI::InvalidURIError: bad URI(is not URI?)が表示されています。完全なエラーMGSRails InvalidURIError on redirect_to with valid url

[2011-12-05 16:17:10] ERROR URI::InvalidURIError: bad URI(is not URI?): http://0.0.0.0:3000/list/#/items/offered/list/80-21614629999999,13-0468673/15/0?Filters={} 
/home/ramesh/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/uri/generic.rb:746:in `rescue in merge' 
/home/ramesh/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/uri/generic.rb:743:in `merge' 
/home/ramesh/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/httpresponse.rb:163:in `setup_header' 
/home/ramesh/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/httpresponse.rb:101:in `send_response' 
/home/ramesh/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/httpserver.rb:86:in `run' 
/home/ramesh/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread' 

の下にこれは、実際のURL

http://0.0.0.0:3000/list/#/items/offered/list/80-21614629999999,13-0468673/15/0?Filters= {}

同じことが私の本番環境で正常に動作しますので、私は完全に困惑しています。

また、URLから?Filters={}というクエリ文字列部分を削除すると、開発環境で正常に動作します。

dev envで?Filters={}を使用すると、なぜこのエラーが発生するのかわかりません。誰かがこれを明確にすることはできますか?

答えて

0

は{}エスケープする必要があり、次のURLは有効です。

http://0.0.0.0:3000/list/#/items/offered/list/80-21614629999999,13-0468673/15/0?Filters=%7B%7D

UPDATE:

なし、http://tools.ietf.org/html/rfc3986

fragment = *(pchar/"/"/"?") 
pchar   = unreserved/pct-encoded/sub-delims/":"/"@" 
unreserved = ALPHA/DIGIT/"-"/"."/"_"/"~" 
sub-delims = "!"/"$"/"&"/"'"/"("/")" 
       /"*"/"+"/","/";"/"=" 
+0

をチェックええ、私はそれを疑います。しかし、これはURLのハッシュ部分(正確にはクエリ文字列ではありません)にあります。 – RameshVel

+0

が有効なはずですので、実運用環境では動作しませんが、正常に動作しています。 – RameshVel

+0

もしそうなら、レールのバグになる – lidaobing

関連する問題