a = []
a << "ул Белова"
a << "ул Алексея"
a << "ул Фадеева"
p a #=> ["ул Белова", "ул Алексея", "ул Фадеева"]
a.sort!
p a #=> ["ул Алексея", "ул Белова", "ул Фадеева"]
И было бы весьма удивительно, если бы "ул" могла как-то помешать.
В идеале вынести тип адреса в отдельное поле, но если сейчас нужно организовать по-быстрому отчет, можно использовать мощь postgresql (ее ведь используете?)
Address.order("SUBSTRING(name, 'ул\s?(.*)') ASC")
Этот способ при больших объемах данных будет работать медленно. Рекомендовал бы пересмотреть такой подход к сохранению адресов. :)