私はRubyのビルトインURIモジュール、またはAddressable宝石のいずれかを使用するURLを解析する必要がある場合。 URIを使用して
、あなたが正しい動作を取得するためのプロトコルを追加する必要があります:
URI.parse('http://' + 'localhost:3000/apage.cgi?key=value').query # => "key=value"
あなたはもう少しマッサージと値のハッシュを作成することができます。
Hash[URI.parse('http://localhost:3000/apage.cgi?key=value').query.split('&').map{ |q| q.split('=') }]
{
"key" => "value"
}
Hash[URI.parse('http://localhost:3000/apage.cgi?key=value&foo=bar').query.split('&').map{ |q| q.split('=') }]
{
"key" => "value",
"foo" => "bar"
}
同様に、Addressableを使用して:
require "addressable/uri" # => true
uri = Addressable::URI.parse('http://' + 'localhost:3000/apage.cgi?key=value')
#<Addressable::URI:0x100c80978
@uri_string = nil,
@validation_deferred = false,
attr_accessor :authority = nil,
attr_accessor :host = "localhost",
attr_accessor :path = "/apage.cgi",
attr_accessor :port = 3000,
attr_accessor :query = "key=value",
attr_accessor :scheme = "http",
attr_reader :hash = nil,
attr_reader :normalized_host = nil,
attr_reader :normalized_path = nil,
attr_reader :normalized_port = nil,
attr_reader :normalized_query = nil,
attr_reader :normalized_scheme = nil
>
uri.query # => "key=value"
uri.query_values # => {"key" => "value"}
完全なコードを教えてください。一見すると、あなたのコードで定義されていない 'request'メソッドまたは変数を使用しています。 – DNNX
正確には、これにアクセスするためにどのモジュールが必要ですか? (または単に純粋なルビーで現在のベースURLを取得しますか?)この時点で、私は現在のスクリプトに送られたパラメータを出力しようとしています。 –
はコードを追加しました... –