To render the JSON we were using a render call
It can get expensive to pull this deal over the wire every time, so we looked into using caches action and set it to expire in 5 minutes (because that is how often the deal feed updates).
caches_action :index, :expires_in => 5.minutes
(Oh, also we need to turn caching on in dev to see this happening)
config.action_controller.perform_caching = true
While this worked fine for the first call, I noticed that in the subsequent calls, the application type was being set to 'text/html' instead of 'application/json'. This was causing the AJAX call to fail. I then noticed that the AJAX call was calling the action directly instead of using the .json suffix.
So it appeared that because I was not using the suffix, the cache was forcing the application/type header to text/html.