Rails 5从一个目录重定向到多个目录

时间:2018-08-27 18:58:01

标签: ruby-on-rails redirect

Rails的新手。在Rails 5中,我有很多页面,例如/example_path/view_name

我需要将“ example_path”分为两个不同的目录:“ new_path_1”和“ new_path_2”,其中特定视图进入new_path_1,其他视图进入new_path_2。

我还需要将旧路由重定向到新路由,例如: /example_path/view_name_1需要重定向到/new_path_1/view_name_1/example_path/view_name_2需要重定向到/new_path_2/view_name_2

我已经成功重定向了第一个示例的所有路径,例如:

get '/example_path/:name, to: redirect('/new_path_1/%{name}

这有效,但是不允许我“拆分”两条新路径的流量。它只允许我将所有旧版“ example_paths”重定向到“ new_path_1”。

如何在不进行硬编码的情况下分割路线?

1 个答案:

答案 0 :(得分:0)

您可以使用constraints选项:

get '/example_path/:name, to: redirect('/new_path_1/%{name}, constraints: {name: /view_name_1'/}
get '/example_path/:name, to: redirect('/new_path_2/%{name}, constraints: {name: /view_name_2'/}

但是您仍然不得不手动定义所有从->到路由,我不确定是否可以将其定义为硬编码。在无需进行任何统一划分的情况下,您将不得不手动说出哪些旧路由转到了哪些新路由。