新手问题 Rails 3 项目加载 module 失败

young4u_amy · 2013年08月20日 · 最后由 young4u_amy 回复于 2013年08月20日 · 2822 次阅读

在升级一个 rails 2 的项目到 3,原本这个 module 是放在 model 文件夹下的,然后在一个 model 里直接 include CustomModule 就可以使用,升到 3 之后发现会报错: uninitialized constant XXX::CustomModule

然后我把这个 module 文件custom_module.rb挪到 lib/ 文件夹下,在application.rb里加上autoload_path,

config.autoload_paths += %W(#{config.root}/lib)
config.autoload_paths += Dir["#{config.root}/lib/**/"]

还是不好用?现在能 work 的方法就是在 model 里用require 'custom_module', 但似乎不推荐这么加载 module。求助各位有没有解决办法。

不会是跟命名有关吧。。module 的文件名是modules.rb,里面的 module 名是另外一个

有关,Rails 的 Convention over configuration 很大程度上依赖于文件名和内部 module 名称的统一。

#2 楼 @reyesyang 我就纠结为啥在 rails2 下面好使

需要 登录 后方可回复, 如果你还没有账号请 注册新账号