4

私のroutes.rbには、次のルートがあります:

get '/merchandises/:cat/:id' => redirect('/products/%{id}')

このリダイレクトは機能しますが、param id に文字が含まれていると、次の例のようなエラーが発生します。

Started GET "/merchandises/perfumes/Drakkar%20Noir%20Eau%20De%20Toilette" for 127.0.0.1 at 2012-03-07 23:21:28 +0100

URI::InvalidURIError (bad URI(is not URI?): /products/Drakkar Noir Eau De Toilette)

誰かがこれを修正する方法を教えてもらえますか?

4

1 に答える 1

7

わかりました、私は解決策を見つけました:

get '/merchandises/:cat/:id' => redirect { |params, req| "/products/#{URI.escape(params[:id])}" }
于 2012-03-07T23:49:59.653 に答える