# Sharing layout code among different controllers

**URL:** <https://www.ruby-forum.com/t/sharing-layout-code-among-different-controllers/50466>\
**Category:** Rails\
**Created:** [December 16, 2005, 5:17pm UTC](https://www.ruby-forum.com/t/sharing-layout-code-among-different-controllers/50466 "2005-12-16T17:17:29Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![mizage](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/6a8cbe/32.png) [@mizage](https://www.ruby-forum.com/u/mizage)\
**Post date:** [December 16, 2005, 5:17pm UTC](https://www.ruby-forum.com/t/sharing-layout-code-among-different-controllers/50466/1 "2005-12-16T17:17:29Z")

</div>

I want to have one layout for my whole application. The app  
has multiple controllers. Is it true that layouts are associated  
w/ one controller?  
thanks, etienne

---

<div class="post-metadata">

**Author:** ![mizage](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/6a8cbe/32.png) [@mizage](https://www.ruby-forum.com/u/mizage)\
**Post date:** [December 16, 2005, 5:21pm UTC](https://www.ruby-forum.com/t/sharing-layout-code-among-different-controllers/50466/2 "2005-12-16T17:21:28Z")

</div>

I think all you need to do is:

layout “yourlayout”

on each controller

Frank

----- Original Message -----  
From: “mizage” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
To: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Sent: Friday, December 16, 2005 11:17 AM  
Subject: [Rails] sharing layout code among different controllers

---

<div class="post-metadata">

**Author:** ![mizage](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/6a8cbe/32.png) [@mizage](https://www.ruby-forum.com/u/mizage)\
**Post date:** [December 16, 2005, 5:26pm UTC](https://www.ruby-forum.com/t/sharing-layout-code-among-different-controllers/50466/3 "2005-12-16T17:26:41Z")

</div>

ok just found the solution. According to the agile web dev book it says  
“If you create a layout call ‘application’ in the ‘layouts’ directory,  
it will be applied to all controllers that don’t otherwise have a layout  
defined for them”

---

<div class="post-metadata">

**Author:** ![mizage](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/6a8cbe/32.png) [@mizage](https://www.ruby-forum.com/u/mizage)\
**Post date:** [December 16, 2005, 5:54pm UTC](https://www.ruby-forum.com/t/sharing-layout-code-among-different-controllers/50466/4 "2005-12-16T17:54:45Z")

</div>

Yes. But there is a solution. Make a layout called application.rhtml  
and drop it in the root of the layouts folder. Your app always  
checks for the existence of that file. There is a potential gotcha  
here. If you also have a controller specific layout (made  
automatically by scaffolding) it will OVERRIDE the application.rhtml  
file.

bruce
