Причина в том, что в обычном HTML, за пределами содержащих тегов, таких как 'xmp', разрывы строк не отображаются как разрывы строк, по большей части они игнорируются. Чтобы они отображались, вам необходимо заменить их тегами 'br' или чем-то еще, с которым связан стиль или структура, например теги p или даже div, в зависимости от содержимого.
Это должно сделать то, что вы просите:
@person.description.gsub(/\n/, '<br />')
Встроенный помощник Rails simple_format также будет работать, используя p теги
http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-simple_format