使用通配符值而不是params在routes.rb中重定向?

时间:2016-08-05 12:31:01

标签: ruby-on-rails ruby routes

要使用params在routes.rb中重定向,我们使用以下语法。

get '/stories/:name', to: redirect('/articles/%{name}', status: 301)

如果我想通过外卡网址我该怎么办? 我尝试了以下它不起作用。

get '/stories/*search', to: redirect('/articles/%{search}', status: 302)

get '/stories/*search', to: redirect("/articles/#{search}", status: 302)

我有任何黑客攻击。

1 个答案:

答案 0 :(得分:1)

我相信这三种解决方案中的一种应该对你有用,但要确切地说出你所追求的东西有点难以理解。

这基本上会用文章切换故事并保留网址的外卡值。即/ stories / hello-world将成为/ articles / hello-world

get '/stories/*name', to: redirect('/articles/%{name}', status: 302)

或者如果您想传递整个'/stories/*name'原始网址

get '/stories/*name', to: redirect('/articles/stories/%{name}', status: 302)

或者如果你想将通配符作为查询字符串传递,你可以这样做

get '/stories/*name', to: redirect('/articles/?name=%{name}', status: 302)

您可以在文档中找到示例。我已合并3.113.12