# Active Record forgets methods! bug?

**URL:** <https://www.ruby-forum.com/t/active-record-forgets-methods-bug/126877>\
**Category:** Rails\
**Created:** [January 23, 2008, 1:16am UTC](https://www.ruby-forum.com/t/active-record-forgets-methods-bug/126877 "2008-01-23T01:16:03Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![sdpurtill](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/77aa72/32.png) [@sdpurtill](https://www.ruby-forum.com/u/sdpurtill)\
**Post date:** [January 23, 2008, 1:16am UTC](https://www.ruby-forum.com/t/active-record-forgets-methods-bug/126877/1 "2008-01-23T01:16:03Z")

</div>

I have created a rails app.  
When in development mode, I hit a problem the second time I try to  
display a page from a particular controller: it raises a method\_missing  
exception because suddenly the model I am trying to use has forgotten  
about all the methods I added to it, and all its association methods  
(from has\_one and has\_many). Inspecting the model shows that it still  
has it’s @attributes array.

In production mode, it works fine. Same result on Rails 1.x and 2.0.2.  
Below is an example exception. In my DB, System has\_many  
test\_results.

Any ideas?  
Thanks,  
-Sam.

undefined method `test\_results’ for #System:0x2521eb0  
RAILS\_ROOT:  
/Users/sam/Development/ideas/trunk/spierson/pbits/server/pbits2

Application Trace | Framework Trace | Full Trace  
/Library/Ruby/Gems/1.8/gems/activerecord-2.0.2/lib/active\_record/attribute\_methods.rb:205:in  
`method_missing' app/controllers/results_controller.rb:34:in`report’  
/Library/Ruby/Gems/1.8/gems/activerecord-2.0.2/lib/active\_record/associations/association\_proxy.rb:125:in  
`each' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.2/lib/active_record/associations/association_proxy.rb:125:in`send’  
/Library/Ruby/Gems/1.8/gems/activerecord-2.0.2/lib/active\_record/associations/association\_proxy.rb:125:in  
`method_missing' /Library/Ruby/Gems/1.8/gems/activerecord-2.0.2/lib/active_record/associations/has_many_through_association.rb:133:in`method\_missing\_without\_paginate’  
vendor/plugins/will\_paginate/lib/will\_paginate/finder.rb:93:in  
`method_missing' app/controllers/results_controller.rb:32:in`report’  
/Library/Ruby/Gems/1.8/gems/actionpack-2.0.2/lib/action\_controller/base.rb:1158:in  
`send’  
\<snip - boring part deleted\>

---

<div class="post-metadata">

**Author:** ![sdpurtill](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/77aa72/32.png) [@sdpurtill](https://www.ruby-forum.com/u/sdpurtill)\
**Post date:** [January 23, 2008, 7:00am UTC](https://www.ruby-forum.com/t/active-record-forgets-methods-bug/126877/2 "2008-01-23T07:00:15Z")

</div>

This is because of the file loading problem in development mode.  
So for this, add the following statement on top of the ‘system.rb’ file.

requrie ‘test\_result.rb’

Use the file names that you are using. I have given the file names in  
assumption.

I hope it will work. Because I have experienced the same problem.

- Karthik.

---

<div class="post-metadata">

**Author:** ![sdpurtill](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/77aa72/32.png) [@sdpurtill](https://www.ruby-forum.com/u/sdpurtill)\
**Post date:** [January 23, 2008, 8:15am UTC](https://www.ruby-forum.com/t/active-record-forgets-methods-bug/126877/3 "2008-01-23T08:15:28Z")

</div>

Sorry Karthink -\> Karthik

---

<div class="post-metadata">

**Author:** ![sdpurtill](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/77aa72/32.png) [@sdpurtill](https://www.ruby-forum.com/u/sdpurtill)\
**Post date:** [January 23, 2008, 8:14am UTC](https://www.ruby-forum.com/t/active-record-forgets-methods-bug/126877/4 "2008-01-23T08:14:20Z")

</div>

Many thanks for your suggestion Karthink.  
That was a good idea: require ‘test\_result’ was indeed missing from  
system.rb

Unfortunately this did not solve the problem.  
Something more sinister is going on.

-Sam.

---

<div class="post-metadata">

**Author:** ![sdpurtill](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/77aa72/32.png) [@sdpurtill](https://www.ruby-forum.com/u/sdpurtill)\
**Post date:** [January 23, 2008, 8:21am UTC](https://www.ruby-forum.com/t/active-record-forgets-methods-bug/126877/5 "2008-01-23T08:21:50Z")

</div>

I dont know what else the problem is.

Did you restart the server after adding the statement? If not, please  
try that also.

---

<div class="post-metadata">

**Author:** ![sdpurtill](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/77aa72/32.png) [@sdpurtill](https://www.ruby-forum.com/u/sdpurtill)\
**Post date:** [January 23, 2008, 8:35am UTC](https://www.ruby-forum.com/t/active-record-forgets-methods-bug/126877/6 "2008-01-23T08:35:40Z")

</div>

Karthi kn wrote:

> Did you restart the server after adding the statement? If not, please  
> try that also.

Yes. Twice 🙂

---

<div class="post-metadata">

**Author:** ![sdpurtill](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/77aa72/32.png) [@sdpurtill](https://www.ruby-forum.com/u/sdpurtill)\
**Post date:** [January 23, 2008, 8:37am UTC](https://www.ruby-forum.com/t/active-record-forgets-methods-bug/126877/7 "2008-01-23T08:37:29Z")

</div>

Can you show that controller code here?

---

<div class="post-metadata">

**Author:** ![sdpurtill](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/77aa72/32.png) [@sdpurtill](https://www.ruby-forum.com/u/sdpurtill)\
**Post date:** [January 23, 2008, 8:52am UTC](https://www.ruby-forum.com/t/active-record-forgets-methods-bug/126877/8 "2008-01-23T08:52:41Z")

</div>

Karthi kn wrote:

> Can you show that controller code here?

No need - you cracked it!  
I went further and put in appropriate require statements for EVERY  
association in EVERY model.  
That fixed it. I have some 2-step joins (using :through) and I think  
one of those maybe was causing the problem.

Many thanks for your help!

-Sam.
