假设我有一些不属于模型,控制器等的自定义类,我应该把它放在/ lib中吗?
在rails <3中,我将此目录添加到我的加载路径和rails 3+中,我将其添加到我的autoload_path.它是否正确?
现在说我有一些扩展已经定义的类的类.我应该把它放在哪里,以便它在启动时运行.例如,我想在String上添加方法'foo'.
class String
def foo
'foo;
end
end
我应该把这个类放在哪里,以便它在启动时定义?
我遇到的另一个奇怪的错误是当我尝试在lib中命名空间时.
module MyProject class Foo end end
现在在控制台中:
ruby-1.9.2-p136 :004 > MyProject::Foo LoadError: Expected /Users/me/workspace/my_project/lib/foo.rb to define Foo from /Users/rob/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:492:in `load_missing_constant' from /Users/rob/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:183:in `block in const_missing'
我一直收到这个错误.我该如何加载这个文件?