rails3 autoload_paths

Posted by wxianfeng Wed, 23 Feb 2011 13:23:00 GMT

环境:ruby 1.9.2 + rails 3.0.3

rails3里 autoload_paths 到底有什么用,什么情况加到 autoload_paths 中 ,什么时候使用require? , rails 2.X 里是 load_paths , 例如 rails3里添加 文件夹到 autoload_paths

config.autoload_paths += %W(#{Rails.root}/lib) # 不包括子文件夹

然后 代码里

include AuthenticatedSystem  

就会从 autoload_paths 中寻找 authenticated_system.rb , autoload_paths 和java中的classpath类似 。。

所以没有必要把所有额外的 .rb 文件 都require 一下 , 这样会 影响启动时间 , 但是有些情况是必须 require 的 ,例如扩展 String ,Array ,Hash 类时 就必须require 了

autoload_paths 默认加到了 $LOAD_PATH 全局数组变量中 ,或者写成 $: , 用来保存 paths

autoload_paths 源码 : here

see:

http://errtheblog.com/posts/3-organize-your-models