说我有一些不属于模型,控制器等的自定义类,我应该把它放在/ lib中正确吗?

在rails
现在说我有一些扩展已经定义的类的类。我应该把它放在哪里,以便它在启动时运行。例如说我想在String上添加方法'foo'。

类字符串
def foo
'foo;
结束
结束


我应该在哪里放置此类,以便在启动时进行定义?

我遇到的另一个奇怪的错误是,当我尝试在lib中命名空间类时。

模块MyProject
Foo类
结束
结束


现在在控制台中:

ruby-1.9.2-p136:004> MyProject :: Foo
LoadError:预期/Users/me/workspace/my_project/lib/foo.rb定义Foo
来自/Users/rob/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:492:位于“ load_missing_constant”中
来自/Users/rob/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:183:在const_missing块中


我不断收到此错误。如何加载此文件?

最佳答案

在rails 3中,在config / application.rb中禁用了自动加载路径。

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


如果要从lib dir加载代码,则必须取消注释此行。

10-04 21:40
查看更多