2010-06-21 7 views
0

Dans environment.rb je peux ajouter la ligneRails: load_paths pour répertoire et tous les sous-répertoires

config.load_paths += %W(#{RAILS_ROOT}/app/models/foos) 

où 'foos' est un dossier. Cela charge tous les fichiers dans le dossier foos. Cependant, il ne charge aucun de ses sous-répertoires.

Si je connaissais le nom de tous les sous-répertoires dans le dossier « foos », ce problème aurait une solution facile:

%W[folder1 folder2 folder2].each { |f| f.config.load_paths += %W(#{RAILS_ROOT}/app/models/foos/#{f}) } 

Cependant, je ne saurai pas toujours les noms de tous les dossiers à l'intérieur de 'foos'. Y at-il someway pour ce faire:

config.load_paths += %W(#{RAILS_ROOT}/app/models/foos/#{**WILDCARD**}) 

Merci

Répondre

2

Il ressemble à cette autre question a le type de solution que vous cherchez à obtenir tous les sous-répertoires:

get all of the immediate subdirectories in ruby

Vous pouvez utiliser quelque chose comme le suivant pour pointer sur un répertoire particulier et obtenir une liste de tous les sous-répertoires de celui-ci:

Dir['/home/username/Music/*/'] 

Cela retourne un tableau de tous les chemins d'accès aux sous-répertoires du dossier Musique.

+0

Ça a l'air bien. Pourriez-vous m'aider à adapter cette méthode pour travailler avec environment.rb? Par exemple, Dir.glob ("** /") trouve tous les sous-répertoires du répertoire * current *. Je veux pointer vers un répertoire différent dont je veux charger les sous-répertoires. – user94154

+1

a mis à jour la réponse pour vous aider à cibler un répertoire particulier. – Pete

Questions connexes