Rails 3 respond_to: default format?

Posted by bdorry on Stack Overflow See other posts from Stack Overflow or by bdorry
Published on 2011-01-10T04:44:29Z Indexed on 2011/01/10 4:53 UTC
Read the original article Hit count: 201

I am converting a Rails 2 application to Rails 3. I currently have a controller set up like the following:

class Api::RegionsController < ApplicationController
  respond_to :xml, :json
end

with and an action that looks like the following:

def index
    @regions = Region.all

    respond_with @regions  
  end

The implementation is pretty straightforward, api/regions, api/regions.xml and api/regions.json all respond as you would expect. The problem is that I want api/regions by default to respond via XML. I have consumers that expect an XML response and I would hate to have them change all their URLs to include .xml unless absolutely necessary.

In Rails 2 you would accomplish that by doing this:

respond_to do |format|
  format.xml { render :xml => @region.to_xml }
  format.json { render :json => @region.to_json }
end

But in Rails 3 I cannot find a way to default it to an XML response. Any ideas?

© Stack Overflow or respective owner

Related posts about ruby-on-rails

Related posts about ruby-on-rails3