2010-12-27 7 views
10

Ich bin auf der Suche nach einer Möglichkeit, ganze Zahl ordinalization in Ruby/Rails, also zu handhaben. "st", "nd", "rd" und "th" Suffixe zu ganzen Zahlen. Ruby on Rails hat FixNum um eine "ordinalize" -Methode erweitert, aber diese Funktionalität scheint in Version 3 veraltet zu sein.Integer ordinalization in Ruby/Rails

Ich benutze gerade die Quelle für die alte Rails-Methode, was in Ordnung ist, aber das scheint eine Funktionalität zu sein, die die meisten Skriptsprachen/Webframeworks eingebaut hätten, und ich habe das Gefühl, dass die Leute hinter Rails einen Grund haben müssen, die Funktionalität abzulehnen (vielleicht ist sie jetzt in Ruby verfügbar?).

Bitte beraten!

+1

Ich bin nicht sicher, ob diese Funktionalität ist veraltet. Können Sie den Fehler, den Sie sehen, zusammen mit dem Code veröffentlichen, der den Fehler verursacht? –

Antwort

18

Die Methode, die Sie wollen, ist noch ordinalize.

Active_Support wurde ein wenig überarbeitet bessere Granularität bereitzustellen. Anstatt alles auf einmal zu laden, können Sie je nach Bedarf kleinere Teile auswählen.

Sie können entweder alles in Active_Support laden require 'active_support/all', oder brechen sie mit require 'active_support/core_ext/integer/inflections':

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

Danke! Das erklärt alles. – Ashoat

+1

Nun, nicht * alles *, aber zumindest dieses Ding. :-) –

+1

Wenn Sie nicht alles, was in Ihren Namensraum importieren möchten, können Sie einfach Active nennen :: Beugung (Zahl) – Kevin

0

In letzter Zeit (letzte wusste ich) es ein Trend Core-Klassen nicht ändern gewesen. Die Rails-Core-Mailingliste könnte eine bessere Antwort für diesen haben.

Es sieht so aus, dass Funktionalität Inflector aus einer Fixnum-Erweiterung, die Sinn macht, bewegt wurde. Hoffentlich kann das jemand anderes bestätigen.