How can I specify layout when using redirect_to

I use redirect_to in this way:

class AdminController < ApplicationController

def logout
    redirect_to ({:controller=>'builder', :action=>'index'})
end

end

this code is in the controller “admin”. when this action is invoked, the
page will be changed but still in admin layout. How can I change it to
builder layout?

You don’t. Layouts are associated with the controller, or the
controller’s action

render :layout => “admin”

If you want to change it, the better approach would be to do something
like

before_filter :login_required
before_filter :choose_layout

def index
render :layout => @layout
end

private

def choose_layout
@layout = current_user.is_admin? ? “admin”, “public”
end

Or you could have one layout that has helpers and partials that
changed based on the user.

On Tue, Jan 20, 2009 at 12:05 AM, Zhao Yi

When I use "redirect_to ({:controller=>‘builder’, :action=>‘index’})
", I have specify the controller is builder, it should use builder
layout, right? But it still in admin layout.

2009/1/21 Zhao Yi [email protected]

When I use "redirect_to ({:controller=>‘builder’, :action=>‘index’})
", I have specify the controller is builder, it should use builder
layout, right? But it still in admin layout.

Are you saying that after the redirect_to it shows the view from
views/builder/index.html.erb but uses the layout from
views/layouts/admin.html.erb instead of views/layouts/builder.html.erb?

Colin L. wrote:

Are you saying that after the redirect_to it shows the view from
views/builder/index.html.erb but uses the layout from
views/layouts/admin.html.erb instead of views/layouts/builder.html.erb?

yes, it is the case.