If you ever need to change the template that a controller action will render depending on some conditions, you can do this using a before_filter and some rails magic.
For example, for a project I'm working on at work, we wanted that every action should render its view without the layout if the request received was an AJAX request. Here is how I did it:
class ApplicationController < ActionController::Base
# If the request is an xhr, we don't render any layout
if request and request.xhr?
One thing to notice is that we do not need to set self.class.layout back to our default layout. This is because in MVC, a controller is stateless for each request, so Rails creates an instance of the controller for every request. (As seen on the Rails guides).