2011-07-30 11 views
3

は、URI標準ライブラリを使用して、私はRuby 1.8でURIのクエリ部分を解析するにはどうすればよいですか?ルビー1.8で

["http", nil, "au.easyroommate.com", nil, nil, 
"/content/common/listing_detail.aspx", nil, 
"code=H123456789012&from=L123456789", nil] 

を取得するためにURI.splitを使用して

http://au.easyroommate.com/content/common/listing_detail.aspx?code=H123456789012&from=L123456789

を解析することができますしかし、それは私自身を使用せずにクエリ部分からH123456789012ビットを取得することが可能ですハッカー(例えば、&で分割して一致するビットを取得すると、/code.(.*)/

答えて

3

あなたはを探しています3210あなたはURLからクエリ文字列を渡すことができparse_nested_queryというメソッドを持っているRack::Utilsを使用することができます方法

params = CGI::parse("query_string") 
    # {"name1" => ["value1", "value2", ...], 
    # "name2" => ["value1", "value2", ...], ... } 
3

Rack::Utils.parse_nested_query(uri.query_string) 

これは、クエリ文字列を表すHashオブジェクトを返します。 codeにアクセスすることができます。

+0

ラックは標準ライブラリの一部であり、宝石ではありません。これは私には驚きでした。 –

+0

Rackは宝石ですが、Rubyの標準ライブラリの一部ではありません(これは良いことです)。 –

+0

@Mauricio:そうです。私はそれをインストールしていたことを忘れてしまった。 –

関連する問題