0

そこのドキュメントからpass、コントロールが渡されるルートが自動的に決定されることがわかります。

名前付きルートに制御を渡すにはどうすればよいですか?

これは私にはうまくいきません:

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

1 に答える 1

1

redirectユーザーのブラウザのURLを実際に変更する場合は、を使用するか、エンドユーザーから転送を非表示にする場合(つまり、ブラウザのURLは同じままですが、内部的にリクエストが転送される場合)に直接使用できcall!ます。アプリケーション内の別のルートへ)。

だからあなたの場合、それはどちらかでしょう

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 に答える