How to cache this kind of action?

I have an action. It renders files specified by URL. If the file is a source code, the action will do something on it, like highlighting. If the file is a plaintext or an image, the action just sends it as is.

This code works until I turn on cache on this action. With cache enabled, the second time to access a URL will result in a prompt dialog asking if you want to download it.

I guess it is related to the mimetype. But don't know how to solve it:(

The Rails action_cache does not keep the headers returned from the first request that causes the data to be cached. On subsequent requests, if you set the correct response.headers for the file *after* the action cache before filter, then you will get the default headers (text/html content type)

My action_cache filter will keep the headers returned, and will return the same ones on subsequent requests.

Just install the plugin and restart your app -- for this fix, no other configuration is needed.

So where can I get your plugin? Thanks in advance.

I found it. http://www.agilewebdevelopment.com/plugins/action_cache

Ben's agile development site is always the best place to find plugins.

Opps, I've installed your plugin but still have the problem. It's my first time to use rails plugin. I am not sure if I've done things right.

I installed the plugin by "./script/plugin install http://craz8.com/ svn/trunk/plugins/action_cache". But how can I know this plugin is working?

Are you setting the correct mime type in your action that returns the file? Can you post the code for that action?

Now I am using caches_action instead of caches_page and it works. Is this a "Work as design"? BTW: I think your plugin is useful. Can you make it default in rails? I am not clear about rails development model. Just wondering.

Anyway, thanks a lot.