BigBinary Blog

We write about Ruby on Rails, React.js, React Native, remote work, open source, engineering and design.

Order of format matters in respond_to block

This is a standard Rails code. I am using Rails 2.3.5 .

1class UsersController < ApplicationController
2  def index
3    @users = User.all
4    respond_to do |format|
5      format.html
6      format.js  { render :json => @users }
7    end
8  end
9end

Accidentally in one of my controllers the order of formats got reversed. The altered code looks like this.

1class UsersController < ApplicationController
2  def index
3    @users = User.all
4    respond_to do |format|
5      format.js  { render :json => @users }
6      format.html
7    end
8  end
9end

I thought order of format declaration does not matter. I was wrong.

1> curl -I http://localhost:3000/users
2HTTP/1.1 200 OK
3Connection: close
4Date: Mon, 25 Jan 2010 22:32:16 GMT
5ETag: "d751713988987e9331980363e24189ce"
6Content-Type: text/javascript; charset=utf-8
7X-Runtime: 62
8Content-Length: 2
9Cache-Control: private, max-age=0, must-revalidate

Notice the Content-Type of in the response header is text/javascript in stead of text/html .

Well I guess the order of format matters. I hope it is fixed in Rails 3.

Neeraj Singh in Rails
January 25, 2010
Share

Subscribe to our newsletter