0

リクエストの形式を保持するリダイレクトを設定しようとしています。ただし、フォーマットが指定されていない場合もあり、それも考慮する必要があります。

フォーマットはパスの一部だと思ったので、最初はこのように設定しました...

match 'v:api/*path', :to => redirect("/%{path}")

ただし、フォーマットはリクエストの一部ではありません。したがって、フォーマットが指定されている場合は、これに変更すると機能します。

match 'v:api/*path', :to => redirect("/%{path}.%{format}")

欠点は、フォーマットが指定されていない場合があり、フォーマットが一致しないためにエラーが発生することです。

だから私の質問は...このキャッチオールを作成する正しい方法は何ですか?

その目的は、そのルートのバージョンが存在しないバージョン番号が指定されている場合、バージョンを指定せずにルートルートに移動する必要があるということです。

4

1 に答える 1

0

さて、私はそれを理解したと思います。注意してください、それは醜いですが...

match '/v:api/*path', to: redirect { |params, request|
  if params[:format]
    "/#{params[:path]}.#{params[:format]}"
  else
    "/#{params[:path]}"
  end
}
于 2012-11-26T21:00:56.013 に答える