# Action Specific Layouts

**URL:** <https://www.ruby-forum.com/t/action-specific-layouts/153091>\
**Category:** Rails\
**Created:** [November 12, 2008, 1:18am UTC](https://www.ruby-forum.com/t/action-specific-layouts/153091 "2008-11-12T01:18:26Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![jpfeifer](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/65b543/32.png) [@jpfeifer](https://www.ruby-forum.com/u/jpfeifer)\
**Post date:** [November 12, 2008, 1:18am UTC](https://www.ruby-forum.com/t/action-specific-layouts/153091/1 "2008-11-12T01:18:26Z")

</div>

Greetings,

I’m wondering if I can do action specific layouts in an elegant way like  
this:

class AuthorsController \< ApplicationController  
before\_filter :is\_admin?, :only =\> [:new, :create, :edit, :update,  
:destroy]

layout “admin”, :except =\> [:index, :show]

make\_resourceful do  
actions :index, :show, :new, :create, :edit, :update  
end

end

I’m aware that you can do it in each action with:

def index  
render :layout =\> “layout”  
end

However, in a need to keep it clean I don’t want to write that. Looking  
at the layout method source, it appears that it should accept options.  
However, if I set :only or :except the layout is only correctly “admin”  
for the ones specified (or excepted), and the others render without a  
layout.

Thoughts?

Thanks,

Jason

---

<div class="post-metadata">

**Author:** ![jpfeifer](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/65b543/32.png) [@jpfeifer](https://www.ruby-forum.com/u/jpfeifer)\
**Post date:** [November 12, 2008, 2:51pm UTC](https://www.ruby-forum.com/t/action-specific-layouts/153091/2 "2008-11-12T14:51:43Z")

</div>

perhaps a before or after filter to set it based on  
controller.action\_name ?

On Nov 11, 7:18 pm, Jason P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
