Automatyczne ładowanie plików lib w Railsach 4

Używam poniższej linii w inicjatorze do automatycznego ładowania kodu w moim/lib katalog podczas tworzenia:

config / initializers / custom.rb:

RELOAD_LIBS = Dir[Rails.root + 'lib/**/*.rb'] if Rails.env.development?

(zRails 3 Quicktip: Automatyczne przeładowanie folderów lib w trybie programowania)

Działa świetnie, ale jest zbyt nieefektywny w użyciu w produkcji - zamiast ładować biblioteki przy każdym żądaniu, chcę je tylko załadować podczas uruchamiania. Ten sam blog mainny artykuł opisując, jak to zrobić:

config / application.rb:

# Custom directories with classes and modules you want to be autoloadable.
config.autoload_paths += %W(#{config.root}/lib)
config.autoload_paths += Dir["#{config.root}/lib/**/"]

Jednak, kiedy przełączam się na to, nawet w fazie rozwoju, otrzymuję NoMethodErrors podczas próby użycia funkcji lib.

Przykład jednego z moich plików lib:

lib / extensions.rb:

Time.class_eval do
  def self.milli_stamp
    Time.now.strftime('%Y%m%d%H%M%S%L').to_i
  end
end

PowołanieTime.milli_stamp rzuci NoMethodError

Zdaję sobie sprawę, że inni odpowiedzieli na podobne pytania dotyczące SO, ale wszystkie wydają się zajmować konwencjami nazewnictwa i innymi problemami, o które nie musiałem się martwić, zanim… Moje klasy lib już sąpracował w przypadku ładowania na żądanie chcę po prostu zmienić go na per-uruchomienie Ładuję. Jak to zrobić?

questionAnswers(4)

yourAnswerToTheQuestion