0

Passenger で Sinatra アプリを実行しています。おおよそ次のようなアクションがあります。

get '/pic/:id' do
  # do stuff ...
  canonical_image_url = "/img/%d.jpg" % params[:id]
end

ただし、次の例外でアプリが失敗していることがわかります ArgumentError (invalid value for Integer(): "22?fill=width&width=512&sig=173798632b6ce659234a34c05324196c92b9a8ef")

これは、どういうわけか QS パラメータがパスから抽出されていないことを意味します。これはある種の奇妙なエスケープの問題ですか?(アプリの一部が二重にエンコードされたクエリ文字列を要求していること)、またはこれは既知の問題ですか? それとも、そのように設計されており、path-params と QS params を同時に使用することはできませんか?

4

1 に答える 1

1

これを書くためのより簡単な方法(おそらくあなたの問題を解決するのに役立つことはありませんが、コメントするには長すぎます):

get '/pic/:id' do |id|
  # do stuff ...
  canonical_image_url = "/img/%d.jpg" % id
end
于 2012-07-04T17:39:18.293 に答える