Короткое дополнение.
Предложенный выше «исправляющий» вариант вызывает некоторые проблемы, аналогичные описанным здесь.
На данный момент мы обходим это, оборачивая часть с «разделением» в блок begin…rescue…end следующим образом:
begin
ip_port_split = request.ip.split(':')
ip_only = ip_port_split.first
rescue
ip_only = request.ip
end
С наилучшими пожеланиями,
Саша