Try the new respond_with syntax:
class SomeController < ApplicationController
respond_to :html, :json
...
def index
@things = Something.all
respond_with(@things)
end
...
end
Although it looks like to get it to render without a layout you are back to pretty much what you had before but at least you have elimnated boilerplate in most of your actions. If you are looking for a detailed explanation of respond_with, check out "Crafting Rails Applications" by Jose Valim. Great book!