自动加载一堆小类

时间:2013-10-24 13:14:53

标签: ruby-on-rails ruby

我在Rails应用程序中有一堆非常小的类(比如说,不同的错误)(所以来自active_support的所有好东西都可用,我不怕使用它们)并将它们放在单独的文件中似乎只会增加混乱但我不喜欢在任何地方都需要大文件。处理此问题的最佳做法是什么。

3 个答案:

答案 0 :(得分:4)

只有在使用Kernel#autoload方法访问特定模块时才能加载特定文件。

autoload(:Foo, "foo.rb")
autoload(:Bar, "bar.rb")
...

答案 1 :(得分:0)

一个选项是将文件放在config/initializers中,以便在应用程序启动时加载。

答案 2 :(得分:0)

这是仍然使用Rails自动加载的解决方案

# app/models/foo/errors.rb
module Foo
  class A; end
  class B; end
end

# app/models/foo.rb
module Foo
  require 'foo/errors.rb'
end