Notez que je n'utilise pas de rails. J'ai une structure de répertoire comme: base_classes.rb: p> quand je suis dans ce répertoire racine p> >> require '../base_classes' #=> true
>> require File.expand_path("../base_classes.rb") #=> true
>> require File.expand_path("../base_classes") #=> true
>> Card.load!
>> NameError: uninitialized constant Card
4 Réponses :
exiger code> est basé sur le fichier qui est appelé, ce qui signifie généralement
config.ru code>. Vous avez besoin de
exiger_relative code> (qui est basé sur le fichier actuel) ou un chemin absolu. P>
L'inclusion avec WREST_PATH devrait-il alors? Cela crée un chemin absolu.
Cela devrait, mais ... Qu'est-ce que le rendement requis_relatif?
Cela peut jouer une pièce, selon la version de Ruby que vous utilisez.
répertoire actuel supprimé de Chemin de charge pour Ruby 1.9.2 P>
Je soupçonne que votre problème est cette ligne: Cela vous assume sont em> en utilisant Ruby 1.9.2. Sinon, peut avoir besoin de creuser plus profondément. Vous devez marquer la question ou mentionner en elle (ou les deux, de préférence) quelle version de Ruby vous utilisez. P> nécessite '../ base_classes' code> en
foo / code>.
Essayez exiger_relative '../ base_classes' code> à la place et voyez ce qui se passe. p>
Le problème était en réalité à l'intérieur de base_classes.rb, j'ai besoin de demander les fichiers tels que:
Dir.glob(File.join(File.dirname(__FILE__), 'base_classes/config/constants', "*.rb")) { |file| require file} Dir.glob(File.join(File.dirname(__FILE__), 'base_classes', "*.rb")){ |file| require file}
Tout ce qui était nécessaire était d'utiliser un seul point au lieu de deux points.
basé sur l'exemple de code donné: p>