gpt4 book ai didi

error-handling - 如何自定义ActiveRecord::RecordNotFound in Sinatra

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

在我的app.rb中,我得到了一个'/posts/:id',我已经实现了急救 ActiveRecord:RecordNotFound ,但是它仍然会显示错误,而不是重定向到根URL。是否可以自定义ActiveRecord错误,例如自定义路由错误(not_found)

not_found do
slim :not_found
end

get '/posts/:id' do
begin
@post = Post.find(params[:id])
rescue ActiveRecord::RecordNotFound => e
redirect '/'#or display a view or a flash-notice
end
slim :show_post
end

最佳答案

Sinatra Book recommends设置“错误”路由并定义要通过它运行的自定义错误。在您的情况下,看起来像这样

error ActiveRecord::RecordNotFound do
redirect '/'
end

注意:只要您的Sinatra应用程序设置为“开发”环境,您仍将看到带有堆栈跟踪的错误页面。您可以在运行Sinatra时将其设置为其他环境:
ruby app.rb -e production 

有关 Sinatra environments here的更多信息。

关于error-handling - 如何自定义ActiveRecord::RecordNotFound in Sinatra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22258052/

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