У меня была похожая проблема, прежде чем пытаться определить, является ли что-то строкой или каким-либо другим числом. Я пытался использовать регулярное выражение, но это не надежно для моего варианта использования. Вместо этого вы можете проверить класс переменной, чтобы узнать, является ли он потомком класса Numeric.
if column.class < Numeric
number_to_currency(column)
else
column.html_safe
end
В этой ситуации вы также можете заменить любого из числовых потомков: BigDecimal, Date :: Infinity, Integer, Fixnum, Float, Bignum, Rational, Complex