Rails:如何将以前模型中的所有URL重定向到新模型

时间:2013-06-01 20:25:36

标签: ruby-on-rails routing

我是Ruby on Rails的新手,我正在开发一个示例应用程序。 我有一个名为Doi的模型。由于它看起来不太直观,我将模型重命名为Destination

我遇到了一个主要问题:如何将包含旧模型Doi的所有网址重定向到新模型Destination

示例:

    0.0.0.0:3000/<action_x>/dois/<action_y> 

应自动重定向到

    0.0.0.0:3000/<action_x>/destinations/<action_y>

在我的routes.rb中,我使用过:

    match '/**/dois/**' => redirect('/**/destinations/**')

但它没有用。什么是正确的方法?

1 个答案:

答案 0 :(得分:2)

您可以尝试使用

match '/:before/dois/:after' => redirect('/%{before}/destinations/%{after}')

Rails Routing Guide

中查看动态重定向的更多示例

另一种可定制的解决方案是:

match '*before/dois/*after' => redirect {|params| "#{params[:before]}/destinations/#{params[:after]}" }

Rails Routing Guide

中还有更多有关通配符的帮助