преобразование экранированных URL-адресов с помощью punycode в utf, рефакторинг

Я хочу сохранить весь свой URL в читаемом utf8

class User < ActiveRecord::Base
  require 'addressable/uri'
  require 'idn'
  include IDN
  def service_url=(url)
    url = Addressable::URI.parse Addressable::URI.unescape(url)
    url.host = Idna.toUnicode url.host
    super url.to_s
  end
end

какие-нибудь подсказки по рефакторингу или по более универсальным гемам?


person Oleg German    schedule 25.04.2011    source источник
comment
Я собираюсь спросить, почему вы хотите сохранить их как UTF-8. Да, они дадут вам видимое представление многобайтовых символов, но вы можете столкнуться с проблемами, если серверные базы данных не захотят вводить символы в таблицу. Это нужно учитывать. +1 за использование для этого Addressable :: URI.   -  person the Tin Man    schedule 26.04.2011
comment
См. Этот пост (надеюсь, это поможет): stackoverflow.com/a/9648504/6594668   -  person prograils    schedule 13.12.2016