标签: ruby sinatra
从那里我发现pass将自动确定控件传递给的路径。
pass
如何将控制权传递给指定路线?
这对我不起作用:
get '/:title.:ext' do pass "/old/#{params[:title]}" if params[:ext] == 'php' # more logic end
答案 0 :(得分:1)
您可以使用redirect,如果您确实希望更改用户浏览器中的URL,或者如果您希望从最终用户隐藏转发(即URL),则可以直接使用call!在他们的浏览器中保持不变,但在内部请求被转发到应用程序中的不同路由。)
redirect
call!
所以在你的情况下,它可能是
redirect "/old/#{params[:title]}" if params[:ext] == 'php'
或
call! env.merge('PATH_INFO' => "/old/#{params[:title]}") if params[:ext] == 'php'