RESTful Content Negotiation in Rails
content-negotiation, json, mootools, rest, ruby-on-rails
Solution
You can use a `respond_to` stanza in your controller method, like this:
respond_to do |format|
format.html { # Generate an HTML response... }
format.json { # Generate a JSON response... }
end
Rails determines the response format based on the value of the HTTP Accept header submitted by the client.
Problem
I'm looking to implement content negotiation on some resources in a Rails app. I'm using Mootools and will likely be able to tweak the content type accepted by an XMLHTTPRequest to "application/json". Is there any way to pick up on this information in my controller and generate JSON responses instead of XHTML? I'm trying to avoid doing something like: ``` http://site/resource/1?format=JSON ``` ...as it dirties up my URL, imposes a certain degree of redundancy and is not as flexible. Thanks!