私のRails3.0.11アプリでは、コントローラーに非常に単純なコードがあります。
def index
@record = Record.valid # scope around 80,000 records
asdfasdfsa # consider this is a typo to raise NameError Exception
end
興味深いのは、タイプミスに関しては、アプリが例外を発生させる前に、最初に@recordインスタンス変数をクエリ/実行しているように見えることです。クエリは、レコードを取得するのにほぼ1分かかります。そのため、ブラウザでは、例外テンプレートが表示される前に、ページが長時間ハングします。
@recordをローカル変数"record"に置き換えると、クエリはまったく発生しません。誰もがそれが何が起こっているのか知っていますか?