次のような URL があります。
URL = www.example.com/resources/am_i_a_file?.pdf
ファイル名に疑問符が含まれている場合 (知っています…)
次のことを試してみると:
uri = URI::parse(url)
path_raw = uri.path
取得したもの: resource/am_i_a_file
これが当てはまる理由は理解できますが、理想的には次を取得したいと思います:resources/am_i_a_file?.pdf
この方法でこれにアプローチすることもできます。最初に ? を置き換えます。 URL を解析する前に URL エンコードされた形式で変換し、その後 ? に戻します。パスを取得したら。
require 'uri'
url = 'www.example.com/resources/am_i_a_file?.pdf'
encoded_url = url.gsub('?', '%3F')
uri = URI::parse(encoded_url)
path_raw = uri.path.gsub('%3F', '?')
p path_raw
出力
"www.example.com/resources/am_i_a_file?.pdf"