7

ruby でモジュールを名前空間として使用しています。どうすればオートロードできますか...そのようなautoload :"App::ModuleA", 'app/module_aものは「定数名でなければなりません」というエラーをスローしませんか?

4

1 に答える 1

11

autoload次のように、シンボルを(おそらく質問のタイプミス)に渡し、定数の親で呼び出す必要があります。

App.autoload :ModuleA, "app/module_a"

これはネストされたレベルでも機能することに注意してください。あなたが持っていると言ってapp/module_aください:

module App::ModuleA
  autoload :Inner, "path/to/inner"
end

Ruby が に遭遇するApp::ModuleA::Innerと、最初に へのアクセスを試み、それをModuleA自動ロードすることで成功し、次に を試みInnerます。

于 2010-06-02T18:53:42.883 に答える