我正在开发一个允许用户转到根网址的应用,如下所示:
http://localhost:3000/param_here
我的路线设置如下:
match '/:test' => redirect { |params| "/?id=#{params[:test]}" }
问题在于我的其他路线被拾取并被重定向。
Full Route.rb
Myapp::Application.routes.draw do
match '/:test' => redirect { |params| "/?id=#{params[:test]}" }
match '/aboutus', to: 'pages#aboutus', as: "about_us"
# Set the Home Page to a static page
root :to => 'pages#home'
end
因此,如果用户转到/aboutus
,则重定向会将其选中并假设应将其设置为id
。我仍然希望使用常规路线同时实现此重定向
答案 0 :(得分:2)
您是否尝试将/ aboutus路线规则移至
之上 match '/:test' => redirect { |params| "/?id=#{params[:test]}" }
路径文件中的规则?
路由自上而下流动,所以如果你使用可选参数移动路线上方的/我们路线,它应该将您的请求发送到第一条匹配路线,在这种情况下是/ aboutus路线
答案 1 :(得分:1)
match '/:test' => redirect { |params| "/?id=#{params[:test]}" }, :defaults => { :id => '#{params[:test]}' }