gpt4 book ai didi

ruby-on-rails - 铁路验证​​错误处理

转载 作者:行者123 更新时间:2023-12-03 08:03:54 25 4
gpt4 key购买 nike

当前,当我的Rails应用遇到错误时,它会将错误代码和堆栈跟踪信息转储到浏览器窗口中。

如何关闭此功能,以使这些错误仅记录在日志中而不输出到浏览器?

谢谢

更正:我主要只关注验证错误。我想要的就是使用生成的脚手架时获得的相同功能。我想显示验证错误消息并突出显示有问题的表单字段。现在,我得到的只是这个标准开发错误输出。最初,这是在我的应用程序上运行的,但是以某种方式丢失了。

最佳答案

当服务器在生产模式下遇到错误时,它将显示默认的Rails错误页面,而不是您在开发模式下看到的堆栈跟踪。

您可以通过将它们放置在public/500.html和public/404.html中来添加自定义静态html 500或404错误页面。

如果您想以不同的方式处理错误,可以将以下代码放在ApplicationController中(此代码未经测试,但基于我的一个项目中非常相似的方法):

around_filter :handle_errors

def handle_errors
begin
yield
rescue Exception => e
# Handle the exception however you wish.
end
end

请注意,上面的代码将无法处理404错误。但是,可以通过将以下内容放在config/routes.rb的底部来指定默认操作来处理无法定位的路由:
map.connect '*path', :controller => 'home', :action => 'page_not_found'

编辑:

经过更多研究之后,有另一种可能更好的自定义错误处理方法: http://brian.pontarelli.com/2007/01/14/handling-rails-404-and-500-errors/。本质上,建议是覆盖如下的 rescue_action_in_public方法:
  def rescue_action_in_public(exception)
render :template => "shared/error", :layout => "standard", :status => "500"
end

关于ruby-on-rails - 铁路验证​​错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/695604/

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