# Model in subfolder, not missing constant error

**URL:** <https://www.ruby-forum.com/t/model-in-subfolder-not-missing-constant-error/180985>\
**Category:** Rails\
**Created:** [January 3, 2010, 2:23am UTC](https://www.ruby-forum.com/t/model-in-subfolder-not-missing-constant-error/180985 "2010-01-03T02:23:38Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![corin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/6de8d8/32.png) [@corin](https://www.ruby-forum.com/u/corin)\
**Post date:** [January 3, 2010, 2:23am UTC](https://www.ruby-forum.com/t/model-in-subfolder-not-missing-constant-error/180985/1 "2010-01-03T02:23:38Z")

</div>

Hi all,

I’m using the latest rails 2.3.5 and put some models in subfolders like  
this:

models/my/details/texts.rb  
models/my/details/attributes.rb  
…

The models themselves are defined like this:

class My::Details::Texts \< ActiveRecord::Base  
…

class My::Details::Attributes \< ActiveRecord::Base  
…

In development mode (using webrick), everything works fine. But in  
production mode (using thin), I get these errors:

A ArgumentError occurred in attributes#show:  
My::Details is not missing constant Attributes!  
/var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active\_support/dependencies.rb:417:in  
`load\_missing\_constant’

A ArgumentError occurred in attributes#show:  
My::Details is not missing constant Texts!  
/var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active\_support/dependencies.rb:417:in  
`load\_missing\_constant’

So I wonder if it’s okay to place models in subfolders at all? If yes,  
why does this error occur and how to fix it? 🙂

Thanks,  
Corin

–

You received this message because you are subscribed to the Google  
Groups “Ruby on Rails: Talk” group.  
To post to this group, send email to removed\_email\_address@domain.invalid.  
To unsubscribe from this group, send email to  
removed\_email\_address@domain.invalid.  
For more options, visit this group at  
[http://groups.google.com/group/rubyonrails-talk?hl=en](http://groups.google.com/group/rubyonrails-talk?hl=en).

---

<div class="post-metadata">

**Author:** ![corin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/6de8d8/32.png) [@corin](https://www.ruby-forum.com/u/corin)\
**Post date:** [January 3, 2010, 11:34pm UTC](https://www.ruby-forum.com/t/model-in-subfolder-not-missing-constant-error/180985/2 "2010-01-03T23:34:57Z")

</div>

On Jan 2, 8:21 pm, Corin [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> My::Details is not missing constant Attributes!  
> /var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active\_support/dependencies. rb:417:in `load\_missing\_constant’
> 
> A ArgumentError occurred in attributes#show:  
> My::Details is not missing constant Texts!  
> /var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active\_support/dependencies. rb:417:in `load\_missing\_constant’
> 
> So I wonder if it’s okay to place models in subfolders at all? If yes, why does this error occur and how to fix it? 🙂

Historically, models in subfolders have caused problems, but they  
should work now. Can you post a complete stack trace for either of  
these errors?

–Matt J.

–

You received this message because you are subscribed to the Google  
Groups “Ruby on Rails: Talk” group.  
To post to this group, send email to removed\_email\_address@domain.invalid.  
To unsubscribe from this group, send email to  
removed\_email\_address@domain.invalid.  
For more options, visit this group at  
[http://groups.google.com/group/rubyonrails-talk?hl=en](http://groups.google.com/group/rubyonrails-talk?hl=en).

---

<div class="post-metadata">

**Author:** ![corin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/6de8d8/32.png) [@corin](https://www.ruby-forum.com/u/corin)\
**Post date:** [January 4, 2010, 3:47am UTC](https://www.ruby-forum.com/t/model-in-subfolder-not-missing-constant-error/180985/3 "2010-01-04T03:47:51Z")

</div>

On Jan 3, 5:33 pm, Matt J. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Historically, models in subfolders have caused problems, but they  
> should work now. Can you post a complete stack trace for either of  
> these errors?
> 
> –Matt J.

Hi Matt,

here’s the full backtrace:

/var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active\_support/  
dependencies.rb:417:in `load_missing_constant' /var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active_support/ dependencies.rb:80:in `const\_missing’  
/var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active\_support/  
dependencies.rb:98:in `send' /var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active_support/ dependencies.rb:98:in `const\_missing’  
[RAILS\_ROOT]/app/controllers/my/details/texts\_controller.rb:28:in  
`find_user' /var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active_support/ callbacks.rb:178:in `send’  
/var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active\_support/  
callbacks.rb:178:in `evaluate_method' /var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active_support/ callbacks.rb:166:in `call’  
/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/  
filters.rb:225:in `call' /var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/ filters.rb:629:in `run\_before\_filters’  
/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/  
filters.rb:615:in `call_filters' /var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/ filters.rb:610:in `perform\_action\_without\_benchmark’  
/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/  
benchmarking.rb:68:in `perform_action_without_rescue' /var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active_support/ core_ext/benchmark.rb:17:in `ms’  
/usr/lib/ruby/1.8/benchmark.rb:308:in `realtime' /var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active_support/ core_ext/benchmark.rb:17:in `ms’  
/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/  
benchmarking.rb:68:in `perform_action_without_rescue' /var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/ rescue.rb:160:in `perform\_action\_without\_flash’  
/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/  
flash.rb:146:in `perform_action' /var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/ base.rb:532:in `send’  
/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/  
base.rb:532:in `process_without_filters' /var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/ filters.rb:606:in `sass\_old\_process’  
/var/lib/gems/1.8/gems/haml-2.2.16/lib/sass/plugin/rails.rb:19:in  
`process' /var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/ base.rb:391:in `process’  
/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/  
base.rb:386:in `call' /var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/ routing/route_set.rb:437:in `call’  
/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/  
dispatcher.rb:87:in `dispatch' /var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/ dispatcher.rb:121:in `\_call’  
/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/  
dispatcher.rb:130:in `build_middleware_stack' /var/lib/gems/1.8/gems/activerecord-2.3.5/lib/active_record/ query_cache.rb:29:in `call’  
/var/lib/gems/1.8/gems/activerecord-2.3.5/lib/active\_record/  
query\_cache.rb:29:in `call' /var/lib/gems/1.8/gems/activerecord-2.3.5/lib/active_record/ connection_adapters/abstract/query_cache.rb:34:in `cache’  
/var/lib/gems/1.8/gems/activerecord-2.3.5/lib/active\_record/  
query\_cache.rb:9:in `cache' /var/lib/gems/1.8/gems/activerecord-2.3.5/lib/active_record/ query_cache.rb:28:in `call’  
/var/lib/gems/1.8/gems/activerecord-2.3.5/lib/active\_record/  
connection\_adapters/abstract/connection\_pool.rb:361:in `call' /var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/ string_coercion.rb:25:in `call’  
/var/lib/gems/1.8/gems/rack-1.0.1/lib/rack/head.rb:9:in `call' /var/lib/gems/1.8/gems/rack-1.0.1/lib/rack/methodoverride.rb:24:in `call’  
/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/  
params\_parser.rb:15:in `call' /var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/ session/abstract_store.rb:122:in `call’  
/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/  
failsafe.rb:26:in `call' /var/lib/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `call’  
/var/lib/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in  
`synchronize' /var/lib/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `call’  
/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/  
dispatcher.rb:106:in `call' /var/lib/gems/1.8/gems/thin-1.2.5/lib/rack/adapter/rails.rb:74:in `call’  
/var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/connection.rb:76:in  
`pre_process' /var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/connection.rb:74:in `catch’  
/var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/connection.rb:74:in  
`pre_process' /var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/connection.rb:57:in `process’  
/var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/connection.rb:42:in  
`receive_data' /var/lib/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb: 256:in `run\_machine’  
/var/lib/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:  
256:in `run' /var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/backends/base.rb:57:in `start’  
/var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/server.rb:156:in `start' /var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/controllers/controller.rb: 80:in `start’  
/var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/runner.rb:177:in `send' /var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/runner.rb:177:in `run\_command’  
/var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/runner.rb:143:in `run!' /var/lib/gems/1.8/gems/thin-1.2.5/bin/thin:6 /usr/bin/thin:19:in `load’  
/usr/bin/thin:19

Corin

–

You received this message because you are subscribed to the Google  
Groups “Ruby on Rails: Talk” group.  
To post to this group, send email to removed\_email\_address@domain.invalid.  
To unsubscribe from this group, send email to  
removed\_email\_address@domain.invalid.  
For more options, visit this group at  
[http://groups.google.com/group/rubyonrails-talk?hl=en](http://groups.google.com/group/rubyonrails-talk?hl=en).

---

<div class="post-metadata">

**Author:** ![corin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/6de8d8/32.png) [@corin](https://www.ruby-forum.com/u/corin)\
**Post date:** [January 4, 2010, 3:49am UTC](https://www.ruby-forum.com/t/model-in-subfolder-not-missing-constant-error/180985/4 "2010-01-04T03:49:36Z")

</div>

## Same backtrace without line breaks (hopefully):

/var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active\_support/dependencies.rb:417:in  
`load\_missing\_constant’

/var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active\_support/dependencies.rb:80:in  
`const\_missing’

/var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active\_support/dependencies.rb:98:in  
`send’

/var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active\_support/dependencies.rb:98:in  
`const_missing' [RAILS_ROOT]/app/controllers/my/details/texts_controller.rb:28:in `find\_user’

/var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active\_support/callbacks.rb:178:in  
`send’

/var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active\_support/callbacks.rb:178:in  
`evaluate\_method’

/var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active\_support/callbacks.rb:166:in  
`call’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/filters.rb:225:in  
`call’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/filters.rb:629:in  
`run\_before\_filters’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/filters.rb:615:in  
`call\_filters’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/filters.rb:610:in  
`perform\_action\_without\_benchmark’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/benchmarking.rb:68:in  
`perform\_action\_without\_rescue’

/var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active\_support/core\_ext/benchmark.rb:17:in  
`ms' /usr/lib/ruby/1.8/benchmark.rb:308:in `realtime’

/var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active\_support/core\_ext/benchmark.rb:17:in  
`ms’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/benchmarking.rb:68:in  
`perform\_action\_without\_rescue’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/rescue.rb:160:in  
`perform\_action\_without\_flash’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/flash.rb:146:in  
`perform\_action’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/base.rb:532:in  
`send’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/base.rb:532:in  
`process\_without\_filters’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/filters.rb:606:in  
`sass_old_process' /var/lib/gems/1.8/gems/haml-2.2.16/lib/sass/plugin/rails.rb:19:in `process’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/base.rb:391:in  
`process’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/base.rb:386:in  
`call’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/routing/route\_set.rb:437:in  
`call’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/dispatcher.rb:87:in  
`dispatch’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/dispatcher.rb:121:in  
`\_call’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/dispatcher.rb:130:in  
`build\_middleware\_stack’

/var/lib/gems/1.8/gems/activerecord-2.3.5/lib/active\_record/query\_cache.rb:29:in  
`call’

/var/lib/gems/1.8/gems/activerecord-2.3.5/lib/active\_record/query\_cache.rb:29:in  
`call’

/var/lib/gems/1.8/gems/activerecord-2.3.5/lib/active\_record/connection\_adapters/abstract/query\_cache.rb:34:in  
`cache’

/var/lib/gems/1.8/gems/activerecord-2.3.5/lib/active\_record/query\_cache.rb:9:in  
`cache’

/var/lib/gems/1.8/gems/activerecord-2.3.5/lib/active\_record/query\_cache.rb:28:in  
`call’

/var/lib/gems/1.8/gems/activerecord-2.3.5/lib/active\_record/connection\_adapters/abstract/connection\_pool.rb:361:in  
`call’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/string\_coercion.rb:25:in  
`call' /var/lib/gems/1.8/gems/rack-1.0.1/lib/rack/head.rb:9:in `call’  
/var/lib/gems/1.8/gems/rack-1.0.1/lib/rack/methodoverride.rb:24:in  
`call’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/params\_parser.rb:15:in  
`call’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/session/abstract\_store.rb:122:in  
`call’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/failsafe.rb:26:in  
`call' /var/lib/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `call’  
/var/lib/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `synchronize' /var/lib/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `call’

/var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/dispatcher.rb:106:in  
`call' /var/lib/gems/1.8/gems/thin-1.2.5/lib/rack/adapter/rails.rb:74:in `call’  
/var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/connection.rb:76:in  
`pre_process' /var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/connection.rb:74:in `catch’  
/var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/connection.rb:74:in  
`pre_process' /var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/connection.rb:57:in `process’  
/var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/connection.rb:42:in  
`receive_data' /var/lib/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run\_machine’  
/var/lib/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in  
`run' /var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/backends/base.rb:57:in `start’  
/var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/server.rb:156:in `start’

/var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/controllers/controller.rb:80:in  
`start' /var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/runner.rb:177:in `send’  
/var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/runner.rb:177:in  
`run_command' /var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/runner.rb:143:in `run!’  
/var/lib/gems/1.8/gems/thin-1.2.5/bin/thin:6  
/usr/bin/thin:19:in `load’  
/usr/bin/thin:19

On 03.01.2010 21:46, wakathane wrote:

> [RAILS\_ROOT]/app/controllers/my/details/texts\_controller.rb:28:in  
> filters.rb:629:in `run_before_filters' core_ext/benchmark.rb:17:in `ms’  
> /var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action\_controller/  
> dispatcher.rb:87:in `dispatch' /var/lib/gems/1.8/gems/activerecord-2.3.5/lib/active_record/ /var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/ dispatcher.rb:106:in `call’  
> /var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/connection.rb:42:in  
> /var/lib/gems/1.8/gems/thin-1.2.5/lib/thin/runner.rb:177:in `send’
> 
> You received this message because you are subscribed to the Google G. “Ruby on Rails: Talk” group.  
> To post to this group, send email to removed\_email\_address@domain.invalid.  
> To unsubscribe from this group, send email to removed\_email\_address@domain.invalid.  
> For more options, visit this group at [http://groups.google.com/group/rubyonrails-talk?hl=en](http://groups.google.com/group/rubyonrails-talk?hl=en).

–

You received this message because you are subscribed to the Google  
Groups “Ruby on Rails: Talk” group.  
To post to this group, send email to removed\_email\_address@domain.invalid.  
To unsubscribe from this group, send email to  
removed\_email\_address@domain.invalid.  
For more options, visit this group at  
[http://groups.google.com/group/rubyonrails-talk?hl=en](http://groups.google.com/group/rubyonrails-talk?hl=en).
