На самом деле я не знаю, есть ли лучшие способы.Что касается компонентов, вы в значительной степени получили это: протокол, домен и порт.
Если вы хотите, чтобы двоеточие ушло, вы можете сделать это так:
redirect_to(request.protocol + request.domain + (request.port.nil? ? '' : ":#{request.port}"))
Просто проверьте, что это нольвыполняет магию!