ご多分に漏れずハマったので書いておきます。(Ruby 1.9.3, Rails 3.2.2) Rails にはセッション変数 session がありますが、タイムアウトでもないのにこれが何故か空になってしまう現象が発生して、かなり悩んでました。どうも JavaScript で直接 XMLHttpRequest 発行すると発症するようです。GET ではなく POST したときのみのようです。 解決策ですが、リクエストヘッダに 'X-CSRF-Token' を追加すれば良いようです。 function post_xhr_request( url, param, on_ready ) { xhr = new XMLHttpRequest(); xhr.open( 'POST', url, true ); xhr.setRequestHeader( 'X-CSRF-Token', /* token