Rails - 处理404s的任何奇特方式?

jyo*_*eph 7 ruby-on-rails http-status-code-404 ruby-on-rails-3

我有一个我为一个旧网站构建的rails应用程序,我从另一个cms转换(用非rails语言,呵呵).大多数旧页面使用routes.rb映射到新页面.但仍有一些404.

我是一个rails newb所以我问是否有任何先进的方法来处理404s.例如,如果我用我的旧语言编程,我会这样做:

  • 获取正在访问的URL(script_name)并解析它.
  • 在数据库中查找新URL中找到的任何关键字,ID等.
  • 如果找到,则重定向到页面(或者如果找到多个记录,则在结果页面上显示所有记录并让用户选择).使用rails我可能想做:status =>:moving_permanently我猜?
  • 如果找不到,请显示404.

有没有你知道的宝石/插件或教程可以处理这样的事情,如果它甚至可能的话.或者你能从高层次解释如何做到这一点吗?我不需要完整的代码示例,只需向正确的方向推进即可.

PS.这是一个使用单个内容模型的简单rails 3应用程序.

Mar*_*ota 7

把它放在路线中(在你拥有的每一条路线之后,这将捕获每个网址)

match '*url' => 'errors#routing'
Run Code Online (Sandbox Code Playgroud)

现在,在路由操作中的错误控制器中,您可以实现所需的任何奇特逻辑,并像往常一样呈现视图(您可能希望添加:status => 404render调用中).请求的控制器中将提供请求的URL params[:url].