Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – 自定义错误页面 – Ruby on Rails大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在我的网站上设置自定义错误页面.我正在遵循 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:
match“* path”=> ‘错误#handle404’

在Rails 2:
map.connect“* path”,:controller => ‘error’,:action => ‘handle404’

params [:path]将包含匹配的部分.

大佬总结

以上是大佬教程为你收集整理的ruby-on-rails – 自定义错误页面 – Ruby on Rails全部内容,希望文章能够帮你解决ruby-on-rails – 自定义错误页面 – Ruby on Rails所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: