# 2 subdirectories 1 controller?

**URL:** <https://www.ruby-forum.com/t/2-subdirectories-1-controller/98053>\
**Category:** Rails\
**Created:** [July 12, 2006, 8:04am UTC](https://www.ruby-forum.com/t/2-subdirectories-1-controller/98053 "2006-07-12T08:04:18Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Shimon\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/71e660/32.png) [@Shimon\_A](https://www.ruby-forum.com/u/Shimon_A)\
**Post date:** [July 12, 2006, 8:04am UTC](https://www.ruby-forum.com/t/2-subdirectories-1-controller/98053/1 "2006-07-12T08:04:18Z")

</div>

Hi,

I’d like to create the following setup with RoR:

[www.mywebsite.com/subdir1/order/create](http://www.mywebsite.com/subdir1/order/create)  
[www.mywebsite.com/subdir2/order/create](http://www.mywebsite.com/subdir2/order/create)

I’d like both urls to call the same action in the same controller. How  
can  
I do this? I know this may be complicated, but I’m prepared to go a  
long  
way.

Shimon

---

<div class="post-metadata">

**Author:** ![Shimon\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/71e660/32.png) [@Shimon\_A](https://www.ruby-forum.com/u/Shimon_A)\
**Post date:** [July 12, 2006, 8:23am UTC](https://www.ruby-forum.com/t/2-subdirectories-1-controller/98053/2 "2006-07-12T08:23:06Z")

</div>

In your controller:

class SubDir::OrderController \< ApplicationController  
end

In app/views you have to create subdir directory to put the views  
concerning this controller.

---

<div class="post-metadata">

**Author:** ![Shimon\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/71e660/32.png) [@Shimon\_A](https://www.ruby-forum.com/u/Shimon_A)\
**Post date:** [July 12, 2006, 8:35am UTC](https://www.ruby-forum.com/t/2-subdirectories-1-controller/98053/3 "2006-07-12T08:35:31Z")

</div>

That approach won’t quite give you what your after. That approach  
will put a controller in a subdirectory, sure, but from what you said  
you want the same action and controller accessed from two different  
sub-directories.

To do this I would use routes. I don’t have a box with ruby on it in  
front of me but from memory something like.

map.connect “/subdir1/:controller/:action/:id”  
map.connect “/subdir2/:controller/:action/:id”

Should get you started. You can get very tricky with routes. Try  
searching this list, along with the standard google, and doc search.

Cheers

---

<div class="post-metadata">

**Author:** ![Shimon\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/71e660/32.png) [@Shimon\_A](https://www.ruby-forum.com/u/Shimon_A)\
**Post date:** [July 12, 2006, 9:21am UTC](https://www.ruby-forum.com/t/2-subdirectories-1-controller/98053/4 "2006-07-12T09:21:05Z")

</div>

Sorry, I didn’t get that 🙂  
Daniel N is right, routes is what you’re looking for.

---

<div class="post-metadata">

**Author:** ![Shimon\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/71e660/32.png) [@Shimon\_A](https://www.ruby-forum.com/u/Shimon_A)\
**Post date:** [July 12, 2006, 8:35am UTC](https://www.ruby-forum.com/t/2-subdirectories-1-controller/98053/5 "2006-07-12T08:35:41Z")

</div>

Correct me if I’m wrong, but won’t this solution simply allow the order  
controller to be called from _one_ subdir? Lets say I do as you  
recommended:

class subdir1::OrderController \< ApplicationController  
def create  
end  
end

This will give me the following url:

[www.mywebsite.com/subdir1/order/create](http://www.mywebsite.com/subdir1/order/create)

But I wan’t two urls to call the same controller/action:

[www.mywebsite.com/subdir1/order/create](http://www.mywebsite.com/subdir1/order/create)  
[www.mywebsite.com/subdir2/order/create](http://www.mywebsite.com/subdir2/order/create)

How can I achieve this?

Shimon

---

<div class="post-metadata">

**Author:** ![Shimon\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/71e660/32.png) [@Shimon\_A](https://www.ruby-forum.com/u/Shimon_A)\
**Post date:** [July 12, 2006, 9:24am UTC](https://www.ruby-forum.com/t/2-subdirectories-1-controller/98053/6 "2006-07-12T09:24:17Z")

</div>

Thanks, I will check that out!
