# Routes problem

**URL:** <https://www.ruby-forum.com/t/routes-problem/75781>\
**Category:** Rails\
**Created:** [November 13, 2006, 12:32pm UTC](https://www.ruby-forum.com/t/routes-problem/75781 "2006-11-13T12:32:36Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Domas\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/9fc348/32.png) [@Domas\_S](https://www.ruby-forum.com/u/Domas_S)\
**Post date:** [November 13, 2006, 12:32pm UTC](https://www.ruby-forum.com/t/routes-problem/75781/1 "2006-11-13T12:32:36Z")

</div>

I want to connect default route to controller Report::SalesController,  
so I have line:  
map.connect ‘’, :controller =\> ‘report/sales’  
in config/routes.rb

SalesController is in app/controllers/report/sales.rb  
and is declared as:  
class Report::SalesController \< ApplicationController  
…  
end

The problem is that when I try to open root url of my application I  
get error message:  
uninitialized constant SalesController

What I’m doing wrong?

---

<div class="post-metadata">

**Author:** ![Domas\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/9fc348/32.png) [@Domas\_S](https://www.ruby-forum.com/u/Domas_S)\
**Post date:** [November 13, 2006, 1:08pm UTC](https://www.ruby-forum.com/t/routes-problem/75781/2 "2006-11-13T13:08:43Z")

</div>

if you have this route:

map.connect ‘’, :controller =\> ‘report/sales’

your controller would have to be named like this (as far as i know):

class SalesController \< ApplicationController

---

<div class="post-metadata">

**Author:** ![Domas\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/9fc348/32.png) [@Domas\_S](https://www.ruby-forum.com/u/Domas_S)\
**Post date:** [November 13, 2006, 1:16pm UTC](https://www.ruby-forum.com/t/routes-problem/75781/3 "2006-11-13T13:16:43Z")

</div>

On 13 November 2006 14:26, Domas S. wrote:

> What I’m doing wrong?  
> The problem is that file with your controller should be named  
> sales\_controller.rb (like class name, but underscored). Rails classes  
> are  
> loaded on demand and without proper naming Rails will not find which  
> file to  
> load.

---

<div class="post-metadata">

**Author:** ![Domas\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/9fc348/32.png) [@Domas\_S](https://www.ruby-forum.com/u/Domas_S)\
**Post date:** [November 13, 2006, 1:22pm UTC](https://www.ruby-forum.com/t/routes-problem/75781/4 "2006-11-13T13:22:44Z")

</div>

So how can I write a route that redirects to Report::SalesController?

---

<div class="post-metadata">

**Author:** ![Domas\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/9fc348/32.png) [@Domas\_S](https://www.ruby-forum.com/u/Domas_S)\
**Post date:** [November 13, 2006, 3:04pm UTC](https://www.ruby-forum.com/t/routes-problem/75781/5 "2006-11-13T15:04:51Z")

</div>

Try this:

map.connect ‘’, :controller =\> '/report/sales

---

<div class="post-metadata">

**Author:** ![Domas\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/9fc348/32.png) [@Domas\_S](https://www.ruby-forum.com/u/Domas_S)\
**Post date:** [November 13, 2006, 1:42pm UTC](https://www.ruby-forum.com/t/routes-problem/75781/6 "2006-11-13T13:42:46Z")

</div>

Sorry, I mistyped controller file name, it is actually:  
app/controllers/report/sales\_controller.rb

So it seems that rails can’t guess controller class if it’s inside of  
module.  
I created this controller using:  
ruby script/generate controller report/sales

So it seems to be supported. And I can activate the controller by going  
to:  
[http://127](http://127),0,0,1:3000/report/sales

So the problem is only with routing.
