¿Cuándo y dónde necesito archivos en una aplicación de rieles?

Digamos que tengo el siguiente archivo en mi directorio lib de mi aplicación de rieles:

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

Si quiero usar ServiceProxy en un modelo, puedo usarlo así:

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

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

Esto funciona, pero noté que si quiero usar ServiceProxy en otro modelo, no necesito "requerir" proxy "en el segundo archivo de modelo. Parece que tener "requerir 'proxy'" una vez en cualquier modelo lo agregará a la ruta de búsqueda.

¿Alguien puede explicar este comportamiento y las mejores prácticas que lo rodean en una aplicación de Rails?

¡Gracias!

ACTUALIZACIÓN: según la respuesta de floyd a continuación, si mi archivo ServiceProxy se guardó como tal,

#lib/some_service/service_proxy.rb

entonces no tendría que requerir explícitamente el archivo.

Respuestas a la pregunta(5)

Su respuesta a la pregunta