gpt4 book ai didi

ruby-on-rails - 当我有一个自定义页面时,得到一个 404 Not Found 默认错误页面 "Active Record::RecordNotFound"

转载 作者:行者123 更新时间:2023-12-04 05:40:29 24 4
gpt4 key购买 nike

我有一个 404 和 500 状态代码的自定义错误页面,当我放置 localhost:3000/something.html 时它工作正常。但是当我放置 localhost:3000/controller/element_of_a_model 时不起作用。

路线.rb:

if Rails.env.production? then
unless Rails.application.config.consider_all_requests_local
get '*not_found', to: 'errors#error_404'
get '*internal_server_error', to: 'errors#error_500'
end
else
unless
get '*not_found', to: 'errors#error_404'
get '*internal_server_error', to: 'errors#error_500'
end
end

错误 Controller :
def error_404
render_error 404
end

def error_500
render_error 500
end

private
def render_error(status)
respond_to do |format|
format.html { render 'error_' + status.to_s() + '.html', :status => status, :layout => 'errors'}
format.all { render :nothing => true, :status => status }
end
end

最佳答案

你必须把它放在应用程序 Controller 中:

rescue_from ActiveRecord::RecordNotFound do |exception|
render_error 404
end


def render_error(status)
respond_to do |format|
format.html { render 'error_' + status.to_s() + '.html', :status => status, :layout => 'errors'}
format.all { render :nothing => true, :status => status }
end
end

实际上你的 ErrorController 会被路由触发,但是你必须为异常添加逻辑。

关于ruby-on-rails - 当我有一个自定义页面时,得到一个 404 Not Found 默认错误页面 "Active Record::RecordNotFound",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20287904/

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