I struggled with this error:
class_methods.rb to define ClassMethods
for a while after upgrading from rails 1.2.3 to 2.0.2, and although I
seem to have fixed it, I don’t totally understand why it was broken
in the first place.
The error occured anytime I accessed a class that had a call to
acts_as_ferret, either in the console or through the server. I was
able to fix the problem temporarily in the console by doing a “load”
of that file (a “require” didn’t work, as expected).
I seem to have fixed the problem permanently by renaming two files in
the acts_as_solr (I was playing with both solr and ferret) path,
class_methods.rb and instance_methods.rb. So as far as I can tell,
the “require class_methods” in acts_as_ferret (and after fixing that,
the “require instance_methods”) was getting confused as to what file
was actually being required.
I have no real insight into why this started happening when I
upgraded, or why my fix was in fact a fix. Clearly something with the
way files are loaded was in play, but I’d be interested to know which
component of my system was to blame (me, acts_as_ferret, acts_as_solr,
rails, other?). Any thoughts are appreciated.