1

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

4

3 回答 3

4

Kernel#autoload您可以让特定文件仅在使用该方法访问特定模块时才加载。

autoload(:Foo, "foo.rb")
autoload(:Bar, "bar.rb")
...
于 2013-10-24T13:28:10.733 回答
0

One option is to put the file in config/initializers so it is loaded on application startup.

于 2013-10-24T13:16:16.037 回答
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
于 2013-10-24T13:24:20.483 回答