Background: I'm using ActiveRecord to handle some bulk uploads. I decided it would be a good idea to put all my models into subfolders, then load them with autoload [essentially, so I can namespace everything into a module]. Here's the relevant code (i'm using MODULENAMEBase.rb as the naming convention for the class that does establish_connection): module DBNamespace def self.included(m) @models_path = "models/#{m}" require "#{@models_path}/#{m}Base.rb" Dir.new(@models_path).entries.grep(/\.rb$/).collect do |fn| cname = fn.sub(/\.rb$/, '') cname[0] = cname[0].chr.upcase m.autoload(cname, "#{@models_path}/#{fn}") unless fn == "#{m}Base.rb" end end end module PL include DBNamespace end ---- Right now, I can check PL.autoload?(:Agent) and get the correct path; I can even load the constant with PL.const_get(:Agent). However, trying PL::Agent gives me a: /usr/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/ dependencies.rb:278:in `load_missing_constant': uninitialized constant PL::Agent (NameError) from /usr/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/ active_support/dependencies.rb:467:in `const_missing' And doing an include PL; Agent gives me the odder: /usr/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/ dependencies.rb:252:in `load_missing_constant': Object is not missing constant Agent! (ArgumentError) from /usr/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/ active_support/dependencies.rb:467:in `const_missing' from /usr/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/ active_support/dependencies.rb:479:in `const_missing' from header.rb:7 Can anybody clear this up?