路径中的参数包括Sinatra中的查询字符串。那是对的吗?

时间:2012-07-04 16:00:05

标签: ruby sinatra passenger

我在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参数不能同时使用?

1 个答案:

答案 0 :(得分:1)

一种更简单的方式来写这个(这可能无法解决你的问题,但是评论太长了):

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