Extending a module to models causes ArgumentError A copy of xx has been removed from module tree

8 views
Skip to first unread message

Harsh Gupta

unread,
Feb 19, 2014, 3:24:24 PM2/19/14
to rubyonra...@googlegroups.com
How can I extend a module to a model class and use an instance of a
custom class as a class instance variable for model such that when next
request comes, custom class could be found and older instances are
deleted?

I created a class Samples. I also created a module LoadSamples where
in a method say load_samples, I create a new Samples instance and
assign it to a class instance variable. I extend LoadSamples to
ActiveRecord::Base and called load_samples from model User.


class Samples
...
end

module LoadSamples
attr_accessor :samples

def load_samples
@samples ||= Samples.new
...
end
end

The first page that loads, loads fine, but subsequent request gives:

-------------------------------------
ArgumentError in UsersController#new

A copy of BaseSample::LoadSamples has been removed from the module tree
but is still active!
------------------------------------

and points to line @samples ||= Samples.new

This works in production mode or when I set config.cache_classes to
true. But it becomes difficult to work in dev mode.

What can I do about it and what are the alternatives?

This is my first post and I have a feeling that when I post this, it may
not appear as formatted. Please help me with the same too.

--
Posted via http://www.ruby-forum.com/.
Reply all
Reply to author
Forward
0 new messages