我有一个名为PagesController
的控制器,它曾经有一个名为contest
的动作。在这个动作中,我会检查是否存在thanks
参数,如果它存在则提供感谢页面。我已经将这个单一动作抽象为它自己的模型和控制器,现在我想将/contest?thanks
的任何请求重定向到/contests/thanks
。做这个的最好方式是什么?到目前为止,我已经在我的routes.rb
文件中尝试了以下内容,但它不起作用:
# Redirect old URLs
match '/contest' => redirect("/contests")
match '/contest?thanks' => redirect("/contests/thanks")
答案 0 :(得分:2)
如果你想在routes.rb中完全处理这个问题,这条路线就可以了:
match '/contest' => redirect { |params, request|
if request.params.has_key?(:thanks)
"/contests/thanks"
else
"/contests"
end
}
答案 1 :(得分:1)
您可以从控制器重定向 -
配置/ routes.rb中:
match "/contest" => "contest#old_route"
应用程序/控制器/ contest_controller.rb:
def old_route
if params[:thanks]
redirect_to "/contests/thanks"
else
redirect_to "/contests"
end
end
HTH