Kiedy i gdzie mogę wymagać plików w aplikacji szyny?

Powiedzmy, że mam następujący plik w katalogu lib mojej aplikacji szyny:

#lib/proxy.rb
module SomeService
  class ServiceProxy
    def do_something
    end
  end
end

Jeśli chcę użyć ServiceProxy w modelu, mogę go użyć w następujący sposób:

#app/models/product.rb
require 'proxy'

class Product < ActiveRecord::Base
  def do_something
    proxy = SomeService::ServiceProxy.new
    proxy.do_something
  end
end

To działa, ale zauważyłem, że jeśli chcę użyć ServiceProxy w innym modelu, nie potrzebuję „wymagać„ proxy ”w drugim pliku modelu. Wydaje się, że „wymaganie„ proxy ”” w dowolnym modelu spowoduje dodanie go do ścieżki wyszukiwania.

Czy ktoś może wyjaśnić to zachowanie i najlepszą praktykę otaczającą go w aplikacji szyny?

Dzięki!

AKTUALIZACJA: Na podstawie odpowiedzi Floyda poniżej, jeśli mój plik ServiceProxy został zapisany jako taki,

#lib/some_service/service_proxy.rb

wtedy nie musiałbym wyraźnie wymagać pliku.

questionAnswers(5)

yourAnswerToTheQuestion