2011-10-13 15 views
17

¿Cómo se cargan todos los directorios recursivamente en los directorios de modelos y lib? En application.rb, tengo las líneas:Recursivamente incluyendo todos los subdirectorios modelo

config.autoload_paths += Dir[Rails.root.join('app', 'models', '{**}')] 
config.autoload_paths += Dir[Rails.root.join('lib', '{**}')] 

pero sólo parecen añadir un nivel de modelo y subdirectorios lib.

Gracias

Respuesta

34

esto debería ser útiles

Dir["#{config.root}/app/models/**/","#{config.root}/lib/**/"] 

disfrutar! (:

Actualización:..

excelente pregunta, publicar ejemplo anterior me he referido simplemente a mi reciente proyecto

Después de hacer algunas pruebas, una mejor comprensión viene a mí y es genial

la diferencia principal es, por supuesto, ni en unirse método de archivo no config.root/Rails.root

terminador '/' después '**' tiene sentido.

El primero habla para hacer coincidir solo directorios al englobar. Segundo habla hacerlo recursivamente.

En el caso de que éste podría ser también apropiado

Dir[ Rails.root.join('app', 'models', '**/') ] 
+0

Niza que trabajó ... un poco confundido cómo 'Dir [Rails.root.join ('app', 'modelos', '{** } ')] 'es diferente de' Dir ["# {config.root}/app/models/** /"] '. Gracias aunque – GTDev

+0

he actualizado mi respuesta con alguna explicación, ya que era lo suficientemente grande – sarvavijJana

+0

Todavía no lo entiendo. Entonces, ¿por qué alguien usaría '{**}' en lugar de '** /'? – jgomo3

Cuestiones relacionadas