Целочисленная ординализация в Ruby/Rails

Я ищу способ обработки целочисленной ординализации в Ruby/Rails, т.е. "st", "nd", "rd" и "th" для целых чисел. Ruby on Rails используется для расширения FixNum с помощью метода "ordinalize", но эта функциональность, похоже, устарела в версии 3.

В настоящее время я просто использую источник для старого метода Rails, но это похоже на функциональность, которую большинство скриптовых языков/веб-фреймворков было бы встроено, и я чувствую, что люди, стоящие за Rails, должны были причина для обесценивания функциональности (возможно, теперь она доступна в Ruby?).

Пожалуйста, посоветуйте!

Ответ 1

Вы хотите по-прежнему ordinalize.

Active_Support был реорганизован немного, чтобы обеспечить лучшую детализацию. Вместо того, чтобы загружать все сразу, вы можете выбрать меньшие куски в зависимости от того, что вам нужно.

Вы можете загрузить все в Active_Support с помощью require 'active_support/all' или разбить его, используя   require 'active_support/core_ext/integer/inflections':

>> require 'active_support/core_ext/integer/inflections' #=> true
>> 1.ordinalize #=> "1st"

Ответ 2

В последнее время (последний раз я знал) была тенденция не изменять основные классы. Список рассылки Rails-Core может иметь лучший ответ для этого.

Похоже, что эта функциональность была перенесена на Inflector с расширением Fixnum, что имеет смысл. Надеюсь, кто-то еще сможет это подтвердить.