URI::InvalidURIError при перенаправлении маршрутизации по рельсам

У меня в route.rb есть следующий маршрут:

get '/merchandises/:cat/:id' => redirect('/products/%{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)

Кто-то может сказать мне, как это исправить?

1 ответ

Решение

Хорошо, я нашел решение:

get '/merchandises/:cat/:id' => redirect { |params, req| "/products/#{URI.escape(params[:id])}" }
Другие вопросы по тегам