# Which architecture to choose for a common website

**URL:** <https://www.ruby-forum.com/t/which-architecture-to-choose-for-a-common-website/83000>\
**Category:** Rails\
**Created:** [January 22, 2007, 11:47pm UTC](https://www.ruby-forum.com/t/which-architecture-to-choose-for-a-common-website/83000 "2007-01-22T23:47:52Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Matthieu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/da6949/32.png) [@Matthieu](https://www.ruby-forum.com/u/Matthieu)\
**Post date:** [January 22, 2007, 11:47pm UTC](https://www.ruby-forum.com/t/which-architecture-to-choose-for-a-common-website/83000/1 "2007-01-22T23:47:52Z")

</div>

Hello!

I’ve just started using ruby on rails, and I’d like for a first try  
create a simple website.

But I can’t figure out how to organise it from the RoR point of view.

Here is my problem:

I’d like to set up a website with a two level menu, so there will be  
different groups of menu elements.

Do I have to create one controller for each group? Each page would be  
then represented by one method.

In that case then, how can I do to have one common layout for all the  
controllers?

I got the fact that I shouldn’t repeat myself, but I think I read there  
is one layout for each controller. Then, if I want one global layout for  
the whole website, I would need to repeat the layout for each  
controller.

I hope I made myself clear with my problem 😕

If I’m completely wrong, please tell me! I feel RoR is really powerful,  
and I’d like to know how to deal with it!

Thank you by advance!

Best regards,

Matthieu

---

<div class="post-metadata">

**Author:** ![Matthieu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/da6949/32.png) [@Matthieu](https://www.ruby-forum.com/u/Matthieu)\
**Post date:** [January 23, 2007, 12:06am UTC](https://www.ruby-forum.com/t/which-architecture-to-choose-for-a-common-website/83000/2 "2007-01-23T00:06:14Z")

</div>

> Do I have to create one controller for each group? Each page would be  
> then represented by one method.

You don’t have to, but it might be easier…

> In that case then, how can I do to have one common layout for all the  
> controllers?

app/controllers/application.rb:  
class ApplicationController \< ActionController::Base  
layout ‘default’  
end

app/controllers/about\_controller.rb  
class AboutController \< ApplicationController  
def index  
end

def contact  
end

…  
end

app/controllers/product\_controller.rb  
class ProductController \< ApplicationController  
def index  
end

def product  
end

…  
end

app/views/layouts/default.rhtml:

 my default view... \<%= yield "layout" %\> ...

---

<div class="post-metadata">

**Author:** ![Matthieu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/da6949/32.png) [@Matthieu](https://www.ruby-forum.com/u/Matthieu)\
**Post date:** [January 23, 2007, 1:26am UTC](https://www.ruby-forum.com/t/which-architecture-to-choose-for-a-common-website/83000/3 "2007-01-23T01:26:26Z")

</div>

On 1/23/07, Matthieu [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I’d like to set up a website with a two level menu, so there will be  
> different groups of menu elements.
> 
> Do I have to create one controller for each group? Each page would be  
> then represented by one method.

That’s not a bad way of organising things. Conceptually, one  
controller should be responsible for a closely related set of  
operations.

> In that case then, how can I do to have one common layout for all the  
> controllers?

in views/layouts, remove all the individual controller layouts and  
create an application.rhtml layout, which will be used as the default.  
Scaffolding will generate a layout for a new controller, so make sure  
you remove that if you don’t want it.

–max

---

<div class="post-metadata">

**Author:** ![Matthieu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/da6949/32.png) [@Matthieu](https://www.ruby-forum.com/u/Matthieu)\
**Post date:** [January 23, 2007, 9:02pm UTC](https://www.ruby-forum.com/t/which-architecture-to-choose-for-a-common-website/83000/4 "2007-01-23T21:02:52Z")

</div>

Thank you for both your answers! I see it clearlier now!

I get back to work then!
