# Simple routing problem

**URL:** <https://www.ruby-forum.com/t/simple-routing-problem/191125>\
**Category:** Rails\
**Created:** [July 6, 2010, 4:03am UTC](https://www.ruby-forum.com/t/simple-routing-problem/191125 "2010-07-06T04:03:24Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![RichardOnRails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e0b2c6/32.png) [@RichardOnRails](https://www.ruby-forum.com/u/RichardOnRails)\
**Post date:** [July 6, 2010, 4:03am UTC](https://www.ruby-forum.com/t/simple-routing-problem/191125/1 "2010-07-06T04:03:24Z")

</div>

I’ve got the following in config\routes.rb:  
map.resources :users

In app\views\shared\_menu.erb, I’ve got:  
Please sign in \<%= link\_to  
“here”, :controller=\>“user”, :action=\>“sign\_in” -%\>

In app\controllers\users\_controller.rb  
def sign\_in  
end

When I run the application, I crash with:  
Routing Error  
No route matches “/user/sign\_in” with {:method=\>:get}

I presume I should add “def sign\_in; [snip]; end” somewhere in:  
app\views\users

But where, so as to satisfy the Rails routing scheme?  
Is sufficient information provided above to answer this question?  
I’m running Rails 2.3.5

Thanks in Advance,  
Richard

---

<div class="post-metadata">

**Author:** ![RichardOnRails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e0b2c6/32.png) [@RichardOnRails](https://www.ruby-forum.com/u/RichardOnRails)\
**Post date:** [July 6, 2010, 4:44am UTC](https://www.ruby-forum.com/t/simple-routing-problem/191125/2 "2010-07-06T04:44:22Z")

</div>

map.resources creates routes for the typical CRUD operations. Since you  
are adding an additional operation, you could revise your mapping to  
this:

map.resources :users, :collection =\> {:sign\_in =\> :get}

This creates awkward route names & feels ugly as you are mucking with a  
resource controller’s routes. It’s probably better to do:

map.sign\_in “/sign\_in”, :controller =\> “users”, :action =\> “sign\_in”

However, as logging in is really a session issue, rather than a user  
concern, it would be even better to do something like this:

map.sign\_in “/sign\_in”, :controller =\> “sessions”, :action =\> “new”

Then move your sign\_in method from users\_controller to  
sessions\_controller

You will want a file like /path\_to\_controller\_views/sign\_in.html.erb to  
handle it (assuming you are using erb). Replace  
path\_to\_controller\_views with either /app/views/users or  
/app/views/sessions as appropriate.

Niels

---

<div class="post-metadata">

**Author:** ![RichardOnRails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e0b2c6/32.png) [@RichardOnRails](https://www.ruby-forum.com/u/RichardOnRails)\
**Post date:** [July 6, 2010, 6:40am UTC](https://www.ruby-forum.com/t/simple-routing-problem/191125/3 "2010-07-06T06:40:49Z")

</div>

Hey Niels,

Thank you for excellent guidance. I read about routing but it’s taking  
me a long time to actually internalize this stuff. Your analysis  
gives me hope!

Best wishes,  
Richard

---

<div class="post-metadata">

**Author:** ![RichardOnRails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e0b2c6/32.png) [@RichardOnRails](https://www.ruby-forum.com/u/RichardOnRails)\
**Post date:** [July 6, 2010, 9:22am UTC](https://www.ruby-forum.com/t/simple-routing-problem/191125/4 "2010-07-06T09:22:23Z")

</div>

On 6 July 2010 05:39, RichardOnRails  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Hey Niels,
> 
> Thank you for excellent guidance. I read about routing but it’s taking  
> me a long time to actually internalize this stuff. Your analysis  
> gives me hope!

Have a look at the Rails Guide on routing. As always don’t just read  
it, play with a test app and try variants of the examples in the  
guide. That helps the ideas to sink in, at least it helps for me.

Colin

---

<div class="post-metadata">

**Author:** ![RichardOnRails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e0b2c6/32.png) [@RichardOnRails](https://www.ruby-forum.com/u/RichardOnRails)\
**Post date:** [July 9, 2010, 2:00am UTC](https://www.ruby-forum.com/t/simple-routing-problem/191125/5 "2010-07-09T02:00:23Z")

</div>

Hi Colin,

> Have a look at the Rails Guide on routing.

Good idea. I’m still stuck on that.issue. Thanks.

Best wishes,  
Richard
