0

从那里我看到的文档pass将自动确定控件将传递到的路由。

如何将控制权传递给命名路由?

这对我不起作用:

get '/:title.:ext' do
  pass "/old/#{params[:title]}" if params[:ext] == 'php'
  # more logic
end
4

1 回答 1

1

如果您确实希望更改用户浏览器中的 URL,您可以使用redirect,或者call!如果您希望对最终用户隐藏转发,则可以直接使用(即浏览器中的 URL 保持不变,但在内部转发请求到您的应用程序中的不同路线)。

所以在你的情况下,它要么是

redirect "/old/#{params[:title]}" if params[:ext] == 'php'

或者

call! env.merge('PATH_INFO' => "/old/#{params[:title]}") if params[:ext] == 'php'
于 2012-12-04T00:05:56.747 回答