说我有一些不属于模型,控制器等的自定义类,我应该把它放在/ 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加载代码,则必须取消注释此行。