Ruby on Rails - 将params传递给routes.rb中的301重定向

Art*_*rti 7 ruby ruby-on-rails rails-routing ruby-on-rails-3

我想改变我在routes.rb中的现有"游戏"路由,但由于SEO我还需要设置301重定向旧链接.

我的旧路由:

match 'games/:permalink/:id/(:page)' => 'games#show'
Run Code Online (Sandbox Code Playgroud)

新路由:

match 'gierki/:permalink/(:page)' => 'games#show'
Run Code Online (Sandbox Code Playgroud)

这是我试图做的重定向:

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

上面的重定向不起作用,这是一个错误:

wrong number of arguments (1 for 2)
Run Code Online (Sandbox Code Playgroud)

Mau*_*res 9

试着这样做:

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

看看它是否有效.