ruby-on-rails – 自定义错误页面 – Ruby on Rails
发布时间:2020-12-16 22:30:11 所属栏目:百科 来源:网络整理
导读:我正在尝试在我的网站上设置自定义错误页面.我正在遵循 PerfectLine Blog的准则. 它在控制器存在的情况下起作用,但该ID不存在.例如,我有一个博客控制器,id 4不存在.它显示自定义错误页面 但是在控制器本身不存在的情况下不存在.例如,如果我键入一些带有数字I
我正在尝试在我的网站上设置自定义错误页面.我正在遵循
PerfectLine Blog的准则.
它在控制器存在的情况下起作用,但该ID不存在.例如,我有一个博客控制器,id 4不存在.它显示自定义错误页面 但是在控制器本身不存在的情况下不存在.例如,如果我键入一些带有数字ID的随机控制器不被我在应用程序控制器中设置的方法所捕获,以重新路由自定义错误页面.在这种情况下,我得到一个 ActionController :: RoutingError(无路由匹配“/ randomcontrollername”): 在终端和带有rails的默认错误页面. application_controller.rb class ApplicationController < ActionController::Base protect_from_forgery unless Rails.application.config.consider_all_requests_local rescue_from Exception,:with => :render_error rescue_from ActiveRecord::RecordNotFound,:with => :render_not_found rescue_from ActionController::RoutingError,:with => :render_not_found rescue_from ActionController::UnknownController,:with => :render_not_found rescue_from ActionController::UnknownAction,:with => :render_not_found end private def render_not_found(exception) render :template => "/error/404.html.erb",:status => 404 end def render_error(exception) render :template => "/error/500.html.erb",:status => 500 end end 你可以帮我吗.谢谢. 解决方法
您可以使用rails中的路径集合来实现,它允许您使用通配符将任何操作与路由的任何部分进行匹配.
要捕获所有剩余的路由,只需将低优先级路由映射定义为config / routes.rb中的最后一条路由: 在Rails 3: 在Rails 2: params [:path]将包含匹配的部分. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |