Допустим, у меня есть следующий файл в каталоге lib моего приложения rails:
#lib/proxy.rb
module SomeService
class ServiceProxy
def do_something
end
end
end
Если я хочу использовать ServiceProxy в модели, я могу использовать его так:
#app/models/product.rb
require 'proxy'
class Product < ActiveRecord::Base
def do_something
proxy = SomeService::ServiceProxy.new
proxy.do_something
end
end
Это работает, но я заметил, что если я хочу использовать ServiceProxy в другой модели, мне не нужно "требовать" прокси "во втором файле модели. Кажется, наличие «require 'proxy» один раз в любой модели добавит его в путь поиска.
Может ли кто-нибудь объяснить это поведение и лучшие практики его использования в приложении rails?
Спасибо!
UPDATE:
Исходя из ответа Флойда, приведенного ниже, если мой файл ServiceProxy был сохранен,
#lib/some_service/service_proxy.rb
тогда мне не нужно было бы явно запрашивать файл.