Fix safe_constantize to not raise a LoadError. by kbrock · Pull Request #34892 · rails/rails (original) (raw)
Summary
There was an issues when using safe_constantize
on a string that has the wrong case.
File em.rb
defines EM
."Em".safe_constantize
causes a little confusion with the autoloader.
The autoloader finds file "em.rb", expecting it to define Em
, but Em
is not defined.
The autoloader raises a LoadError
, which is good, but safe_constantize
is defined to return nil
when a class is not found.
Before
"Em".safe_constantize LoadError: Unable to autoload constant Em, expected rails/activesupport/test/autoloading_fixtures/em.rb to define it
After
"Em".safe_constantize