rails使用lib文件夹中的文件 - rails 2.3.5

时间:2011-06-03 20:31:24

标签: ruby-on-rails require

通常我把文件放在rails lib文件夹中,它们似乎是自动加载的。

我最近尝试将此文件:https://gist.github.com/85632放入我的lib文件夹中。

当我尝试做时,从我的一个模特:

 ftp = Net::FTPS::Implicit::new(

我明白了:

NameError: uninitialized constant Net::FTPS
    from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:440:in `load_missing_constant'
    from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:80:in `const_missing'
    from /Users/jnylund/Projects/aras/app/models/notifier.rb:372:in `send_ftp_file'

我通过添加:      要求'ftps_implicit'

到我的模型文件的顶部。

为什么在这种情况下我需要这样做?这是正确的做事方式吗?

感谢 乔尔

2 个答案:

答案 0 :(得分:1)

Rails 2将按照惯例加载文件。所以当你要求时:

Net::FTPS::Implicit::new

...它会查找文件:

lib/net/ftps/implicit

...定义该类。

我认为Rails 2实际上不会在lib文件夹中加载所有内容 - 它只会在请求某些内容时查找文件。

答案 1 :(得分:0)

Rails 3不再自动加载./lib目录。如果要在Rails 3中重新激活此行为 将以下行添加到您的应用程序配置:

config.autoload_paths += %W(#{config.root}/lib)

这也是这个问题here的转贴。