我在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参数。这是一种奇怪的逃避问题吗? (我的应用程序的某些部分请求使用双重编码的查询字符串)或者这是一个已知问题?或者它是这样设计的,并且路径参数和QS参数不能同时使用?
答案 0 :(得分:1)
一种更简单的方式来写这个(这可能无法解决你的问题,但是评论太长了):
get '/pic/:id' do |id|
# do stuff ...
canonical_image_url = "/img/%d.jpg" % id
end