Ruby on Rails的 - 通过PARAMS到301重定向的routes.rb(Ruby on

2019-09-17 14:42发布

我想改变里面的routes.rb我现有的“游戏”的路由,但因为SEO的我还需要设置301重定向旧的链接。

我的老路由:

match 'games/:permalink/:id/(:page)' => 'games#show'

新的路由:

match 'gierki/:permalink/(:page)' => 'games#show'

这里是重定向我试图做的事:

match 'games/:permalink/:id/(:page)' => redirect {|params| "/gierki/#{params[:permalink]}" + params[:page].nil? ? "" : "/#{params[:page]}" }

上述重定向不工作,这里是一个错误:

wrong number of arguments (1 for 2)

Answer 1:

尝试制作这样的:

match 'games/:permalink/:id/(:page)' => redirect {|params,request| "/gierki/#{params[:permalink]}" + params[:page].nil? ? "" : "/#{params[:page]}" }

看看它是否工作。



文章来源: Ruby on Rails - passing params into 301 redirect in routes.rb