Hi all, I’m posting this in the hope that someone who understands
rails dependencies can shed some light.
I’ve implemented a “ModelSecurity” module in the vein of Bruce Peren’s
old ModelSecurity plugin (http://rubyforge.org/projects/model-
security/).
My ModelSecurity module lives in $RAILS_ROOT/lib. It is automatically
included into ActiveRecord::Base by a file in config/initializers.
Everything works fine and dandy (including mongrel in development
mode) EXCEPT when I do “reload!” inside script/console – then I get
the following error the next time any of my ModelSecurity methods are
called:
ArgumentError: A copy of ModelSecurity has been removed from the
module tree
but is still active!
I have tried adding an “unloadable” declaration to my ModelSecurity
model, but it makes no difference.
I also tried adding the “unloadable” declaration to ActiveRecord::Base
itself (I was grasping at straws there), but that doesn’t work either
– it causes “reload!” to fail with:
NameError: uninitialized constant ActiveRecord::Base
Admittedly this isn’t a huge problem (it only affects script/console)
but it is annoying because quitting and re-running script/console
takes ~12s on my system.
Cheers
Dave.