I’m having an issue with expires_in. From the docs (http://apidock.com/rails/ActionController/ConditionalGet/expires_in) it looks like it should only set a header. However, with a simple test application I can see it storing data to cache.
class HomeController < ApplicationController
expires_in 5.minutes, :public => true
Results in a file like tmp/cache/AE9/880/f812f291251bb669867bae9c9d030ab7b4c0bd20 which contains the page body. I can modify that file and see it being sent back to the client.
I’m surprised to see it storing data on the server - I thought it would just send a header. I also see no way of invalidating the cache. In the example above the data is cached for 5 minutes and no amount of refreshing or shift-refresh shift-ctr-refresh etc. which is supposed to ignore client caching seems to reset it. Should it be caching like this and if so can I invalidate it?