D.

Ruby で序数 (1st, 2nd, 3rd...) を生成する。

こんな感じ。

def number_to_ordinal(num)
  num = num.to_i
  if (10...20)===num
    "#{num}th"
  else
    g = %w{ th st nd rd th th th th th th }
    a = num.to_s
    c=a[-1..-1].to_i
    a + g[c]
  end
end

number_to_ordinal(3) => "3rd"
number_to_ordinal(13) => "13th"
number_to_ordinal(23) => "23rd"

ActiveSupport あたりに同機能のヘルパー無いのかな。