11
votes

Ruby nécessite "fichier" ne fonctionne pas mais nécessite "./file". Pourquoi?

J'ai un dossier rempli de fichiers rubis, et lorsque j'essaie d'essayer d'avoir besoin d'un fichier dans un autre dans le même répertoire utilisant nécessite "fichier" i obtenez un charrorror Mais quand j'utilise besoin './file' tout fonctionne bien. Quelqu'un peut-il m'expliquer pourquoi cela se produit et s'il y a une façon de demander un fichier sans ajouter de ./ sur le fichier?

(Photo du répertoire): text alt


3 Réponses :


3
votes

Vous n'avez pas de répertoire actuel dans votre chargement.

Vérifiez le contenu de la variable $ LOAD_PATH


0 commentaires

15
votes

Si vous voulez besoin un fichier non du système $ load_path mais plutôt par rapport au répertoire du fichier, vous êtes exiger ing de , vous devez utiliser Exiger_Relative < / code> . (Ce que vous pouvez voir, n'est pas exactement largement documenté.)


0 commentaires

0
votes

Bien que ce soit très ancien, je pense que certaines informations supplémentaires seront très utiles pour débutant.

Le meilleur moyen de penser requis est par rapport à la variable UNIX $ chemin. Juste à titre de recyclage, la variable $ PATH dans UNIX est une liste de répertoires où les exécutables peuvent être trouvées. Ainsi, lorsque vous tapez le nom d'un programme sur n'importe quel terminal UNIX, votre ordinateur examine les fichiers exécutables des répertoires spécifiés dans votre variable $ chemin. nécessite quelque chose de très similaire. Lorsque, par exemple, vous écrivez besoin de «set» en haut de votre fichier rubis, vous indiquez à RUBY de rechercher un tas de répertoires pour une bibliothèque appelée Set.Rb (Ruby's Set Library).

Alors, où est-ce que Ruby recherche set.rb? Eh bien, une fois encore, Ruby a quelque chose de très similaire à la variable de path $ de Unix. C'est la variable globale $ LOAD_PATH, aussi parfois connue par son alias moche et indésirable $: (ce que je ne suggère pas d'utiliser par le chemin - abrégé, bien que cela puisse être). C'est une gamme de noms de répertoires dans lesquels Ruby regarde quand il ressort d'un besoin.

Il y a une belle post informative ici Où vous pouvez obtenir plus d'informations sur besoin , charger et nécessitent_relative


0 commentaires