MissingSourceFile? Railsの動的ロードで対応
Posted 10月 15th, 2006 by hippos
試行錯誤の結果、すべてのrequireをコメントアウトし、使用している独自のValueObjectクラスのnamespaceを明示的に修飾することで解決しました。
generateコマンドで生成される、コントローラやモデルクラスは自動的に名前空間が明示されますが、独自のValueObjectクラスには修飾がされていなかったためこれを明示するよう修正しました。考えてみればモデルクラスなんかはいちいちrequireせず使用しているわけですからもう少しはやく気がつくべきでした。こうすることでモデルクラスと同じように、requireせず使えるようになるみたいです。起動時にロードパスに組み込まれていないもの(今回のようにcomponents/xxx/xxxはまだ作成されていない)は完全なパスを指定してrequireするより、動的に実行時にロードしたほうが理にかなっているように思います。
こういった仕組みはRails(たぶんActiveSupportあたり?)がこなしているのでしょうけれどもスマート過ぎて(&不勉強で)その仕組みがよく見えてきません。規約さえ守れば後は楽チンというのはそのとおりなんですがいったんハマるとなかなか抜け出すのは難しいようで...
この記事のトラックバックURL:
http://hippos-lab.com/blog/trackback/35


最近のコメント
14 weeks 4 days ago
49 weeks 2 days ago
1年 14 weeks ago
1年 14 weeks ago
1年 31 weeks ago
1年 31 weeks ago
1年 31 weeks ago
1年 43 weeks ago
1年 43 weeks ago
2 years 23 weeks ago