2011-10-13 12 views
17

モデルとlibディレクトリにすべてのディレクトリを再帰的にロードするにはどうすればよいですか? application.rbには、次の行があります。すべてのモデルサブディレクトリを再帰的に含む

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

ただし、モデルとライブラリのサブディレクトリのレベルは1つしかないようです。

おかげ

答えて

34

これは役立つはず

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

お楽しみください! (:

更新:。。

優秀な質問は、私は単に私の最近のプロジェクトに言及している上記の例を掲載

いくつかのテストを行った後、より良い理解が私に来て、それは素晴らしいです

主な違いは、どちらで/ Rails.rootが

末尾の「/」の後には「**」理にかなってconfig.rootないファイルの結合方法はもちろんである。

最初のものは、ディレクトリに一致するときにグロビングします。 2番目の話はと再帰的にです。

あなたのケースでは、この1は

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

ニースも適切であろう働いていたこと...少し混乱をどのように 'のDir [Rails.root.join( 'アプリ'、 'モデル'、「{** } ')] 'は' Dir ["#{config.root}/app/models/** /"] 'とは異なります。おかげで – GTDev

+0

私はそれが十分だったので、いくつかの説明で私の答えを更新しました – sarvavijJana

+0

私はまだそれを取得しません。では、なぜ誰かが '** /'の代わりに '{**}'を使うのですか? – jgomo3

関連する問題