# Inclusione di moduli

**URL:** <https://www.ruby-forum.com/t/inclusione-di-moduli/198808>\
**Category:** IT\
**Created:** [November 8, 2010, 12:26pm UTC](https://www.ruby-forum.com/t/inclusione-di-moduli/198808 "2010-11-08T12:26:28Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![okkezSS](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/85f322/32.png) [@okkezSS](https://www.ruby-forum.com/u/okkezSS)\
**Post date:** [November 8, 2010, 12:26pm UTC](https://www.ruby-forum.com/t/inclusione-di-moduli/198808/1 "2010-11-08T12:26:28Z")

</div>

Se eseguo questo, ricevo il seguente errore da ruby:

undefined method `random’ for Modulo1:Module (NoMethodError)

if **FILE** == $0

module Modulo1

def random

```
return rand(200)

```

end

end

puts Modulo1.random

end

utilizzo: ruby 1.9.2 su ubuntu 10.0.4

Non riesco a capire il motivo…

---

<div class="post-metadata">

**Author:** ![vogon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/34f0e0/32.png) [@vogon](https://www.ruby-forum.com/u/vogon)\
**Post date:** [November 8, 2010, 12:36pm UTC](https://www.ruby-forum.com/t/inclusione-di-moduli/198808/2 "2010-11-08T12:36:59Z")

</div>

Ciao,  
tu chiami un metodo di classe, quindi il tuo codice va scritto cos:

if **FILE** == $0  
module Modulo1  
def self.random  
return rand(200)  
end  
end  
puts Modulo1.random  
end

qui[http://railstips.org/blog/archives/2009/05/11/class-and-instance-methods-in-ruby/](http://railstips.org/blog/archives/2009/05/11/class-and-instance-methods-in-ruby/)trovi  
una buona spiegazione sull definizione dei metodi

---

<div class="post-metadata">

**Author:** ![vogon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/34f0e0/32.png) [@vogon](https://www.ruby-forum.com/u/vogon)\
**Post date:** [November 8, 2010, 12:45pm UTC](https://www.ruby-forum.com/t/inclusione-di-moduli/198808/3 "2010-11-08T12:45:47Z")

</div>

dovresti riscriverlo come class method, non come instance method:

module Modulo1  
def self.random # puoi anche usare ‘Modulo1’ come prefisso, ma ‘self’  
pi comodo e flessibile 😛  
return rand(200)  
end  
end

ciao,  
A.

Il 08/11/2010 12:26, Vogon P. ha scritto:
