我必须调试一些与db相关的错误,并在db导致错误时持续监视日志。由于错误已经记录,我希望有例外:
的ActiveRecord :: StatementInvalid
被禁止,以便用户不会看到“出错页面”。错误仅限于应用程序的一小部分,我们希望在修复后删除此抑制。
感谢!!!
答案 0 :(得分:3)
您可以在ApplicationController中添加rescue_from
行,以便在任何控制器中抛出该特定异常时捕获该异常。然后你必须决定在那种情况下会发生什么(例如重定向到起始页面)。
答案 1 :(得分:1)
假设您在控制器的“创建”操作中遇到问题,您可以执行以下操作:
def create
@record.create(params[:record])
rescue ActiveRecord::StatementInvalid
flash[:notice] = "There was a problem, but we know about it."
redirect_to root_path
end
答案 2 :(得分:0)
您可以在开始救援结束块中包装失败的代码。
begin
# stuff that gets executed
...
# DangerousStatement
...
# stuff that doesn't get executed if dangerous statement raises an error
...
rescue
# set variables that are needed by other code and would have been set if dangerous statement succeeded
...
end
然而,这确实是你应该在开发模式下调试的。