# Modules and models

**URL:** <https://www.ruby-forum.com/t/modules-and-models/47607>\
**Category:** Rails\
**Created:** [November 12, 2005, 12:49pm UTC](https://www.ruby-forum.com/t/modules-and-models/47607 "2005-11-12T12:49:37Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![silvano.stralla](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/3d9bf3/32.png) [@silvano.stralla](https://www.ruby-forum.com/u/silvano.stralla)\
**Post date:** [November 12, 2005, 12:49pm UTC](https://www.ruby-forum.com/t/modules-and-models/47607/1 "2005-11-12T12:49:37Z")

</div>

Hello!

I have a question on using modules with models.

If I do, for example, “script/generate controller Section::Users”  
Rails creates /controllers/section/users\_controller.rb which contains:

class Section::UsersController \< ApplicationController  
end

Then, using “script/generate model Section::User” Rails creates /  
models/section/user.rb with:

class Section::User \< ActiveRecord::Base  
end

Now, if I try to do something like “scaffold :user” in the controller  
and “set\_table\_name :users” in the model, browsing to “/section/  
users/” I get the following error:

NameError in Section/users#index  
uninitialized constant User

The same if I use something like “User.find(:all)” in the controller.

What’s the problem? Why can’t I use a module for models? There’s  
surely something I haven’t considered…

Thanks,  
Silvano

–  
. . . Silvano S. . . .  
e-mail: removed\_email\_address@domain.invalid  
site: [http://www.sistrall.it](http://www.sistrall.it)  
flog: [http://www.sistrall.it/flog](http://www.sistrall.it/flog)

---

<div class="post-metadata">

**Author:** ![silvano.stralla](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/3d9bf3/32.png) [@silvano.stralla](https://www.ruby-forum.com/u/silvano.stralla)\
**Post date:** [November 12, 2005, 12:49pm UTC](https://www.ruby-forum.com/t/modules-and-models/47607/2 "2005-11-12T12:49:39Z")

</div>

Hello Silvano,

I may be oversimplifying things but why not just have:

script/generate model User

I think it can’t find Section::User because you are referencing it as  
just  
User. That’s not the same thing, those are two different classes.

If you did Section::User.find(:all) I’m guessing it would work?

I’m still a newbie, so someone correct me where I’m wrong.

-andy

On 11/9/05, Silvano S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> NameError in Section/users#index

–  
Andrew S.

---

<div class="post-metadata">

**Author:** ![silvano.stralla](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/3d9bf3/32.png) [@silvano.stralla](https://www.ruby-forum.com/u/silvano.stralla)\
**Post date:** [November 12, 2005, 12:49pm UTC](https://www.ruby-forum.com/t/modules-and-models/47607/3 "2005-11-12T12:49:45Z")

</div>

Hello Andrew,

Il giorno 10/nov/05, alle ore 02:09, Andrew S. ha scritto:

> If you did Section::User.find(:all) I’m guessing it would work?

Yes: now everything is working (included scaffold)!!

> I’m still a newbie, so someone correct me where I’m wrong.

I’m newbie too…

> -andy

Thank you,  
Silvano

–  
. . . Silvano S. . . .  
e-mail: removed\_email\_address@domain.invalid  
site: [http://www.sistrall.it](http://www.sistrall.it)  
flog: [http://www.sistrall.it/flog](http://www.sistrall.it/flog)
