2010-12-27 12 views
10

Sto cercando un modo per gestire l'ordinalizzazione di interi in Ruby/Rails, ad es. "st", "nd", "rd" e "th" suffraggono i numeri interi. Ruby on Rails utilizzato per estendere FixNum con un metodo "ordinalize", ma quella funzionalità sembra essere stata deprecata nella versione 3.Ordinamento intero in Ruby/Rails

Attualmente sto solo usando la fonte per il vecchio metodo Rails, che va bene ... ma questa sembra una funzionalità che la maggior parte dei linguaggi/framework web di scripting avrebbe integrato, e sento che la gente dietro Rails deve avere avuto un motivo per deprecare la funzionalità (forse ora è disponibile in Ruby?).

Si prega di avvisare!

+1

Non sono sicuro se questa funzionalità è stato deprecato. Puoi pubblicare l'errore che stai vedendo insieme al codice che lo causa? –

risposta

18

Il metodo desiderato è ancora ordinalize.

Active_Support stata riscritta un po 'per fornire una migliore granularità. Invece di caricare tutto in una volta, puoi selezionare pezzi più piccoli a seconda di ciò che ti serve.

È possibile caricare tutto in Active_Support utilizzando require 'active_support/all', o scomposizione utilizzando require 'active_support/core_ext/integer/inflections':

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

Grazie! Questo spiega tutto. – Ashoat

+1

Beh, non * tutto *, ma almeno questa cosa. :-) –

+1

Se non vuoi importare tutto nel tuo spazio dei nomi, puoi semplicemente chiamare ActiveSupport :: Inflector (numero) – Kevin

0

Ultimamente (l'ultima volta lo sapevo) c'è stata una tendenza a non modificare le classi principali. La mailing list di Rails-Core potrebbe avere una risposta migliore per questo.

Sembra che la funzionalità sia stata spostata su Inflector da un'estensione Fixnum che ha senso. Spero che qualcun altro possa confermarlo.