Ответ 1
Ruby core REXML:: Документ имеет довольно печатную версию:
REXML::Document#write( output=$stdout, indent=-1, transitive=false, ie_hack=false )
indent: целое число. Если -1, нет будет использоваться отступы; в противном случае отступ будет вдвое больше пространств, а дети будут с отступом добавляется дополнительная сумма. Для значение 3, каждый элемент будет отступом еще 3 уровня, или еще 6 пространства (2 * 3). По умолчанию -1
Пример:
require "rexml/document"
doc = REXML::Document.new "<a><b><c>TExt</c><d /></b><b><d/></b></a>"
out = ""
doc.write(out, 1)
puts out
Производит:
<a>
<b>
<c>
TExt
</c>
<d/>
</b>
<b>
<d/>
</b>
</a>
EDIT: Rails уже загружен REXML, поэтому вам нужно только создать новый документ, а затем записать довольно напечатанный XML в некоторую строку, которая затем может быть встроена в <pre> тег.