David said:
The magic loading shouldn't lead to those errors. It only does the
magic loading for unresolved constant references, and once it loads
the necessary file, any further references to the constant won't be
unresolved.
Maybe you've got some rogue "load" commands somewhere.
See where I said 'partly due'?
There are three kinds of loading:
require 'foo' # must be on the $: path
require 'path/to/foo'
Foo.new # magic loading (via ActiveSupport?)
If the system requires the same file twice thru different paths, it will load
the same file twice. The (primitive) require only avoids reloading a file if it
sees the exact same path.
The magic loader adds a third system to load - one where the path is invisible.
Hence it increases the odds of accidentally reloading a file.
(This is not a request for newb advice, BTW!)