xml用のヘッダ記述

まず、コンテンツがxmlなので、controllerに以下のような記述をする必要があります。

@headers['Content-Type'] = 'application/xml; charset=UTF-8'

DB から情報を読み込み、 xml を動的に生成するような場合は、キャッシュデータがキャッシュされないようにする必要があります。明示的には以下のように行えます。

@headers['Cache-Control'] = 'no-cache, must-revalidate'
@headers['Pragma'] = 'no-cache'

しかし、デフォルトで以下の設定と同様になっているので、特に明示的に設定する必要はなさそうです。

@headers['Cache-Control'] = 'no-cache'

以下、ContentTypeのみ指定した場合のHTTPヘッダを確認した例。

>curl -I http://localhost:3000/hoge/get_locations_xml
HTTP/1.1 200 OK
Cache-Control: no-cache
Connection: Keep-Alive
Date: Thu, 20 Apr 2006 06:04:35 GMT
Content-Type: application/xml; charset=UTF-8
Server: WEBrick/1.3.1 (Ruby/1.8.4/2005-12-24)
Content-Length: 0
Set-Cookie: _session_id=e7c025404b76f1b7dd744954cfb0ada9; path=/