gpt4 book ai didi

ruby-on-rails - Rescue_from用于javascript请求

转载 作者:行者123 更新时间:2023-12-03 12:20:31 24 4
gpt4 key购买 nike

在我的Rails 2.3.8应用程序中,我有一个rescue_from代码来处理异常,这些异常在javascript操作期间抛出:

rescue_from ::Exception, :with => :show_js_errors

...

def show_js_errors exception
if request.format == :js
flash[:error] = 'some error occured'
render :update do |page|
page.redirect_to({:controller => '/home', :action => :index})
end
else
# use default error handling for non-JS requests
rescue_action_without_handler(exception)
end
end

因此,如果ajax调用遇到错误,我的用户会收到一条错误消息。
在Rails 3中,我不能简单地调用默认的错误处理,因为“without_handler”方法不再存在。

更新
h

我经过3个小时的搜索后才发布了此帖子,但发布后仅30分钟我就自己找到了解决方案。

只是重新引发异常。

由于您正在执行错误处理,因此不会对此异常进行进一步的处理。

最佳答案

只是提出异常。

def show_js_errors exception
if request.format == :js
flash[:error] = 'some error occured'
render :update do |page|
page.redirect_to({:controller => '/home', :action => :index})
end
else
raise # <<
end
end

http://simonecarletti.com/blog/2009/11/re-raise-a-ruby-exception-in-a-rails-rescue_from-statement/同意:

rescue_from ActiveRecord::StatementInvalid do |exception|
if exception.message =~ /invalid byte sequence for encoding/
rescue_invalid_encoding(exception)
else
raise
end
end

[...]The exception is correctly rethrown but it isn't catched [sic] by the standard Rails rescue mechanism and the standard exception page is not rendered.

关于ruby-on-rails - Rescue_from用于javascript请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6813723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com