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?