Quando e onde eu preciso de arquivos em um aplicativo rails?
Digamos que eu tenho o seguinte arquivo no meu diretório lib do meu aplicativo rails:
#lib/proxy.rb
module SomeService
class ServiceProxy
def do_something
end
end
end
Se eu quiser usar o ServiceProxy em um modelo, posso usá-lo da seguinte maneira:
#app/models/product.rb
require 'proxy'
class Product < ActiveRecord::Base
def do_something
proxy = SomeService::ServiceProxy.new
proxy.do_something
end
end
Isso funciona, mas notei que, se eu quiser usar o ServiceProxy em outro modelo, não preciso "exigir 'proxy'" no segundo arquivo de modelo. Parece que "exigir 'proxy'" uma vez em qualquer modelo o adicionará ao caminho de pesquisa.
Alguém pode explicar esse comportamento e as melhores práticas em um aplicativo de trilhos?
Obrigado!
ATUALIZAÇÃO: com base na resposta de floyd abaixo, se meu arquivo ServiceProxy foi salvo assim,
#lib/some_service/service_proxy.rb
então eu não precisaria explicitamente do arquivo.