cryingwhilecoding

drip drop drip..

Hello sobering Monday.

Eager to jump back into the fray of a suite of specs I left half baked Friday, I spent a little time first trying to figure out why I was getting a particular error when attempting to run the spec suite.

1
2
3
/usr/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:249:
  in `load_missing_constant':
  Expected /sekrat/awesomeproject/app/models/awesome.rb to define Awesome (LoadError)

Nice, eh? I’ve seen it before but I can never remember what causes it. Actually, I there are probably a number of ways you might run into this error message, such as the load order for plugins being incorrect. The way I encountered it today was by injecting a typo into an AR method, set_inheritance_column lacking the final ‘n’ in this case. So if you are shedding some tears over this, double check the spelling on your AR methods (has_many, belongs_to, etc..)

3 Responses to “load_missing_constant Expected foo.rb to define Foo”

  1. Anonymous Says:

    Hey I had the same problem. It turned out that I had a typo too. My model was named plural instead of singular which took me 30 minutes to figure untill I read your post. So sometimes documentions do not help as much as experience does. :)

  2. _phred Says:

    Ran into this today on an app that I was moving from one server from another. I found that the best way to diagnose is to fire up script/console, which gives a much more helpful stack trace—in my case, I was missing the acts_as_state_machine plugin.

  3. TommyMac501 Says:

    Well, in my case, after beating my head against the error for a while I figured out that I was naming my controller ‘FOO’, and if I named it ‘foo’ the Webrick server would start. Apparently the parser is treating my controller as a constant because I used upper case in the name script/generate controller ‘FOO’.

    Hope this helps.

    TM

Leave a Reply