Каков наилучший способ загрузки файлов из папки lib, которые добавляют методы к ~ существующим классам в Rails 3? - PullRequest
3 голосов
/ 30 апреля 2011

Я использую config.autoload_paths способом, очень похожим на этот связанный вопрос , чтобы загрузить классы из каталога lib в проекте Rails 3.

В частности, я добавил следующие строки в файл config / application.rb:

config.autoload_paths += %W(#{config.root}/lib)
config.autoload_paths += Dir["#{config.root}/lib/**/"]

Однако этот метод не работает для меня для существующих классов,Когда я добавляю файл типа lib / extensions / string.rb:

class String
  def foo
    puts "foo"
  end
end

, я получаю ошибку undefined method 'foo' for "":String.Благодаря различным поискам у меня возникло ощущение, что эта проблема связана с отложенной загрузкой этих файлов.Я попытался использовать config.eager_load_paths, но не смог заставить это работать.

1 Ответ

1 голос
/ 30 апреля 2011

Я делаю точно , что вы описываете в моем приложении, и единственное отличие состоит в том, что у меня также есть инициализатор под названием extensions.rb следующий код:

Dir.glob('lib/extensions/*').each { |f| require f }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...