如何使用带有Sinatra斜线的参数?
和sinatra一起玩,我遇到了一个小问题:当我使用带有斜线的参数时,它会混淆路由器引擎。 那么有没有一种很好的方法来处理这种param而不必编码呢?
代码看起来像
get 'add/:url' do #.... end
我打算得到像/ add / http://sctackoverflow.com/这样的东西
您是否尝试使用splat参数?
就像是:
get '/add/*' do protocol = params[:splat].first address = params[:splat][1..-1].join('/') url = protocol + "//" + address end
谢谢,我还没有听说过splat参数,它适用于这种情况。 实际上,我已经查看了文档,我发现使用捕获参数和正则表达式更短:
get %r{/add/(.+)} do url = params[:captures] end
或使用:
url = request.fullpath[5..-1]