With config.cache_classes = false, any change to the model causes a reboot. This includes defining / overriding a constant defined in a / known model.
We had this problem using rspec and ActsAsFu. Overriding the Fu class during the test caused the related (even indirectly related) classes to reload, and we got an ActiveRecord :: AssociationTypeMismatch error for the associated object. We understood this because we had tests that went fine alone, but failed when working after other tests. Our solution was to simply create separately named Fu classes for each configuration and avoid overriding the class name during the test.
So my recommendation is to make sure that you do not override any constants known to your character class (or known to classes known to your character class, etc.).
Tom wilson
source share