# Classi aperte in ror

**URL:** <https://www.ruby-forum.com/t/classi-aperte-in-ror/154752>\
**Category:** IT\
**Created:** [December 3, 2008, 4:05pm UTC](https://www.ruby-forum.com/t/classi-aperte-in-ror/154752 "2008-12-03T16:05:00Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![softwarewin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@softwarewin](https://www.ruby-forum.com/u/softwarewin)\
**Post date:** [December 3, 2008, 4:05pm UTC](https://www.ruby-forum.com/t/classi-aperte-in-ror/154752/1 "2008-12-03T16:05:00Z")

</div>

Ciao a tutti,

voglio definire un metodo per la classe Float che arrotondi alla n-esima  
cifra decimale:  
ho guardato in giro ed ho trovato questo esempio che sfrutta il fatto  
che in ruby le classi sono aperte e che quindi posso  
aggiungere/sovrascrivere metodi:

class Float  
def round(precision = nil)  
if precision.nil? then  
super()  
else  
if precision.is\_a? Integer and precision \> 0 then  
decimals = 10 \*\* precision  
(self \* decimals).round / decimals.to\_f  
else  
raise ArgumentError.new(“Argument must be a positive  
integer”)  
end  
end  
end  
end

in un’applicazione ruby on rails dove definisco questa classe per  
utilizzare questo metodo in una action ? Dove apro questa definizione di  
classe ?

Grazie.

Luigi

---

<div class="post-metadata">

**Author:** ![softwarewin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@softwarewin](https://www.ruby-forum.com/u/softwarewin)\
**Post date:** [December 3, 2008, 4:50pm UTC](https://www.ruby-forum.com/t/classi-aperte-in-ror/154752/2 "2008-12-03T16:50:53Z")

</div>

Ciao,  
puoi creare un file float\_ext.rb ed inserirlo nella directory lib della  
tua  
applicazione, poi nel file enviroment.rb aggiungi questa riga  
require ‘float\_ext’  
ciao

Il giorno 3 dicembre 2008 15.56, Luigi M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha  
scritto:

---

<div class="post-metadata">

**Author:** ![softwarewin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@softwarewin](https://www.ruby-forum.com/u/softwarewin)\
**Post date:** [December 3, 2008, 5:58pm UTC](https://www.ruby-forum.com/t/classi-aperte-in-ror/154752/3 "2008-12-03T17:58:30Z")

</div>

Ok, grazie… !! 🙂

Luigi

Pierpaolo S. ha scritto:

---

<div class="post-metadata">

**Author:** ![softwarewin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@softwarewin](https://www.ruby-forum.com/u/softwarewin)\
**Post date:** [December 3, 2008, 8:20pm UTC](https://www.ruby-forum.com/t/classi-aperte-in-ror/154752/4 "2008-12-03T20:20:03Z")

</div>

Prima non ci avevo fatto caso, ma il metodo round esiste già in Rails  
precisamente in  
ActiveSupport::CoreExtensions::Float::Rounding

Il giorno 3 dicembre 2008 18.00, Luigi M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha  
scritto:
