# Problemi con il require

**URL:** <https://www.ruby-forum.com/t/problemi-con-il-require/120752>\
**Category:** IT\
**Created:** [November 20, 2007, 10:53am UTC](https://www.ruby-forum.com/t/problemi-con-il-require/120752 "2007-11-20T10:53:38Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![dcaseres](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/a87d85/32.png) [@dcaseres](https://www.ruby-forum.com/u/dcaseres)\
**Post date:** [November 20, 2007, 10:53am UTC](https://www.ruby-forum.com/t/problemi-con-il-require/120752/1 "2007-11-20T10:53:38Z")

</div>

Ciao,  
per organizzare un po’ meglio le mie classi ho deciso di spostarne un  
paio all’interno di una directory utils, nel seguente modo:

analizer.rb - nella root  
mux.rb - nella cartella utils  
service.rb - nella cartella utils

da analizer.rb richiamo la classe Mux con: require ‘utils/mux’  
da mux.rb richiamo la classe Service con: require ‘service’

naturalmente essendo mux.rb e service.rb nella stessa cartella, nel  
require ometto la parte ‘utils/.’ e anche l’autocomposizione  
dell’editor mi suggerisce che devo includere direttamente ‘service’.  
ma in fase di esecuzione esce l’errore:  
./util/mux.rb:1:in `require’: no such file to load – service  
(LoadError)  
from ./util/mux.rb:1  
from analizer.rb:2  
ovvero mi dice che non trova service

Se invece lascio i tre file nella stessa cartella (naturalmente in  
questo caso il require di analizer.rb sarÃ solo di ‘mux’) tutto funziona  
perfettamente e mux.rb trova service  
Qualcuno sa spiegarmi come mai organizzando in cartelle si genera questo  
errore.  
Grazie

---

<div class="post-metadata">

**Author:** ![dcaseres](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/a87d85/32.png) [@dcaseres](https://www.ruby-forum.com/u/dcaseres)\
**Post date:** [November 20, 2007, 1:13pm UTC](https://www.ruby-forum.com/t/problemi-con-il-require/120752/2 "2007-11-20T13:13:27Z")

</div>

Ma che cacchio e’ vero!! anche io ho questo problema. E poi mi lamentavo  
dei classpath/sourcepath di java.

Risolvi cosi’:  
metti nella prima riga di analizer.rb: $:\<\<‘util’

Comunque come di ce Diego Abatantuono: “Su Pepplessu”

Dimmi se ti funziona

---

<div class="post-metadata">

**Author:** ![dcaseres](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/a87d85/32.png) [@dcaseres](https://www.ruby-forum.com/u/dcaseres)\
**Post date:** [November 20, 2007, 2:58pm UTC](https://www.ruby-forum.com/t/problemi-con-il-require/120752/3 "2007-11-20T14:58:07Z")

</div>

e poi dicono che la programmazione Ã¨ una questione di logica 😃

cmq ora tutto funziona, ma il cosa “sto dicendo di fare” con questa  
istruzione?

Antonio Di Fluri wrote:

> Ma che cacchio e’ vero!! anche io ho questo problema. E poi mi lamentavo  
> dei classpath/sourcepath di java.
> 
> Risolvi cosi’:  
> metti nella prima riga di analizer.rb: $:\<\<‘util’
> 
> Comunque come di ce Diego Abatantuono: “Su Pepplessu”
> 
> Dimmi se ti funziona

---

<div class="post-metadata">

**Author:** ![dcaseres](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/a87d85/32.png) [@dcaseres](https://www.ruby-forum.com/u/dcaseres)\
**Post date:** [November 20, 2007, 4:35pm UTC](https://www.ruby-forum.com/t/problemi-con-il-require/120752/4 "2007-11-20T16:35:06Z")

</div>

— Diego C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> ```
> from ./util/mux.rb:1
> from analizer.rb:2
> 
> ```
> 
> ovvero mi dice che non trova service

i require sono sempre relativi alla cartella iniziale,  
per cui quando fai  
require ‘service’

cerca sempre in dir/service.rb, sia che tu lo faccia  
da dir/file.rb che da dir/subdir/file.rb.

$:, ovvero $LOAD\_PATH è la lista delle directory in  
cui ruby va a cercare il file passato a require.  
Aggiungendo “util” a questa lista non devi specificare  
il path completo.

HTH

–  
Goto 10: [http://www.goto10.it](http://www.goto10.it)  
blog it: [http://riffraff.blogsome.com](http://riffraff.blogsome.com)  
blog en: [http://www.riffraff.info](http://www.riffraff.info)

```
  ___________________________________________________________

```

Want ideas for reducing your carbon footprint? Visit Yahoo! For Good  
[http://uk.promotions.yahoo.com/forgood/environment.html](http://uk.promotions.yahoo.com/forgood/environment.html)

---

<div class="post-metadata">

**Author:** ![dcaseres](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/a87d85/32.png) [@dcaseres](https://www.ruby-forum.com/u/dcaseres)\
**Post date:** [November 21, 2007, 11:40am UTC](https://www.ruby-forum.com/t/problemi-con-il-require/120752/5 "2007-11-21T11:40:50Z")

</div>

ciao

Grazie sia ad Antonio che a Gabriele per le spiegazioni  
Almeno ora so quando riutilizzarlo ;-D

---

<div class="post-metadata">

**Author:** ![dcaseres](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/a87d85/32.png) [@dcaseres](https://www.ruby-forum.com/u/dcaseres)\
**Post date:** [November 20, 2007, 5:43pm UTC](https://www.ruby-forum.com/t/problemi-con-il-require/120752/6 "2007-11-20T17:43:47Z")

</div>

Si aggiungo che puoi usare in alternativa l’opzione ruby -I  
\<directory/subdirectory…\>  
il comando aggiunge il percorso specificato sempre alla variabile  
globale $LOAD\_PATH (o anche $:)  
alla fine sempre $LOAD\_PATH devi andare a toccare

Ciao
