从 rails ruby 的超时错误中解救

rescueing from a timeout error on ruby on rails

我知道长期的解决方案是尽量避免出现超时错误。但时不时地在我的应用程序中,我会收到超时错误。我一直试图从中解救并重定向到主页。而不是显示 404 或 500 错误。

这就是我的代码的样子

class ApplicationController < ActionController::Base
  ...
  rescue_from Timeout::Error, :with => :rescue_from_timeout

  def rescue_from_timeout
    redirect_to users_root_path
  end
  ...
end

问题是我仍然收到超时错误

为了便于阅读,我通常喜欢将所有代码包含在 rescue_from 块中:

class ApplicationController < ActionController::Base
  ...
  rescue_from Timeout::Error do |e|
    ## log e if needed
    return redirect_to users_root_path

  end

  ...
end

这应该可以正常工作(我什至不知道是否需要 return)