Sadece bunu yap:
require_relative 'tokenizer'
Bunu, aynı dizinde bulunan bir Ruby dosyasına koyarsanız tokenizer.rb, geçerli çalışma dizininiz (CWD) ne olursa olsun iyi çalışır.
Bunun neden en iyi yol olduğunu açıklama
Diğer cevaplar kullanmalısınız iddia require './tokenizer'ama yani yanlış size aynı dizinde sizin Yakut süreci sadece iş çalışacak çünkü eğer, cevap tokenizer.rbiçindedir. Hemen hemen tek nedeni kullanmayı düşünün requireeğer gerekiyorsa olacağını böyle Desteklenmeyen Ruby 1.8'i destekleyin require_relative.
require './tokenizer'Cevap Bugün senin için işe yarayabilecek ama gereksiz yere size Yakut kod çalıştırabilir yolları sınırlar. Yarın, dosyalarınızı farklı bir dizine taşımak veya yalnızca Ruby işleminizi farklı bir dizinden başlatmak istiyorsanız, tüm bu requireifadeleri yeniden düşünmeniz gerekir .
requireYükleme yolundaki dosyalara erişmek için kullanmak iyi bir şeydir ve Ruby gems her zaman bunu yapar. Ancak, çok özel bir şey yapmadıkça ve ne yaptığınızı bilmiyorsanız , tartışmayı bir requireile başlamamalısınız ..
Çevresi hakkında varsayımlarda bulunan bir kod yazarken, hangi varsayımlarda bulunacağınızı dikkatlice düşünmelisiniz. Bu durumda, tokenizerdosyayı istemek için üç farklı yol vardır ve her biri farklı bir varsayım yapar:
require_relative 'path/to/tokenizer': İki Ruby kaynak dosyası arasındaki göreceli yolun aynı kalacağını varsayar.
require 'path/to/tokenizer': path/to/tokenizerYükleme yolundaki ( $LOAD_PATH) dizinlerden birinin içinde olduğunu varsayar . Bu, yükleme yoluna bir şeyler eklemeniz gerektiğinden, genellikle ek kurulum gerektirir.
require './path/to/tokenizer': Ruby işleminin geçerli çalışma dizininden göreli yolun tokenizer.rbaynı kalacağını varsayar .
Çoğu insan ve çoğu durumda, # 1 ve # 2 seçeneklerinde yapılan varsayımların zaman içinde geçerli olma ihtimalinin daha yüksek olduğunu düşünüyorum.