Согласно RFC 3986 URI может содержать только подмножество символов ASCII.
Чтобы предоставить действительный URI, не-ASCII-символы должны быть экранированы:
irb(main):008:0> URI.parse "example.com/city/#{URI.encode('bergstraße')}"
=> #<URI::Generic example.com/city/bergstra%C3%9Fe>
Проблема в том, что я получаю эту ошибку перед тем, как попасть в любой контроллер,
так что мне просто интересно, где я могу поймать эту ошибку, чтобы разобрать и исправить
URL
Проблема в том, что вы не должны ловить эту ошибку. Ваш сервер rails не должен отвечать за неправильные или некорректные запросы.
Хотя вы можете попытаться написать часть промежуточного программного обеспечения для решения этой проблемы, вы должны вместо этого выяснить, почему клиенты отправляют запросы на недопустимый URI.
Если они происходят из вашего собственного приложения, убедитесь, что вы правильно избегаете столбцов слагов, а не просто создаете URL с интерполяцией строк. stringex gem или friendly_id ваши друзья здесь.