3

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

我遇到了一个主要问题:如何将包含旧模型的所有 url 重定向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/**')

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

4

1 回答 1

2

你可以试试

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

在Rails 路由指南中查看更多动态重定向示例


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

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

更多关于通配符的帮助也在Rails 路由指南中

于 2013-06-01T20:30:13.407 回答