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”。
如何在不进行硬编码的情况下分割路线?
答案 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'/}
但是您仍然不得不手动定义所有从->到路由,我不确定是否可以将其定义为硬编码。在无需进行任何统一划分的情况下,您将不得不手动说出哪些旧路由转到了哪些新路由。