在我的 Rails 3.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”,则根本不会发生查询。有谁知道这是怎么回事?