2013-10-29 12 views

risposta

5
  • require blaba.rb è alla ricerca per il vostro percorso gioiello predefinito per caricare il file, che dipende dalla versione rubino che si sta utilizzando. Ad esempio, RVM cercherà in $HOME/.rvm/rubies/... mentre un ruby ​​di sistema cercherà nel percorso predefinito della distribuzione. Nota che qui si trovano le gemme, ma potresti aggiungere manualmente una libreria, dire mylibrary.rb nello stesso percorso e usarla in uno qualsiasi dei tuoi programmi. Tuttavia, è una cosa orribile da fare, è una procedura molto più pulita per creare gemme e installarle nel tuo sistema.

  • require ./blabla.rb carica un file che è seduto nella vostra directory di lavoro. È possibile aggiungere il percorso completo come require /home/username/library/myproject/models/sample.rb. Funzionerà all'incirca allo stesso modo. Nel mondo simile a UNIX il segno ./ indica la directory corrente . Questa soluzione viene spesso utilizzata in irb per caricare il modello say a rails, ad esempio users.rb in irb o pry e lavorare con esso. Per fare un esempio in un ambiente di shell (se si ha familiarità con shell UNIX, potrai capirlo):

    GreyJewel ~ » ls myports.txt                                       
    myports.txt 
    
    GreyJewel ~ » ls ./myports.txt                                      
    ./myports.txt 
    
  • La terza soluzione require File.expand_path('../sample.rb', __FILE__) viene utilizzato nei programmi, perché crea esplicitamente un completa percorso utilizzando come ancoraggio la directory su cui si trova il file contenente la linea, che è un approccio molto più sicuro rispetto a require ./sample.rb. Si noti che quando si carica un file rubino, è possibile omettere l'estensione del file .rb.

Spero che questo chiarisca un po 'la situazione.

+0

Grazie. Perché la terza soluzione è molto più sicura del secondo? – 0xSina

+0

Poiché questo metodo restituisce il "percorso completo" a un file specifico che è sempre sicuro in un ambiente UNIX rispetto a un "percorso relativo". Prova entrambi su "irb", vedrai come funzionano. –

Problemi correlati