我想重定向到具有当前控制器参数的特定网址。 如果我能用命名路线做到这一点会很好。
我实际上有一个控制器包含:
redirect_to another_host_path(params.except(:action, :controller))
config/routes.rb
包含:
match 'another/host', to: redirect { |params, request| "http://www.foobar.com/login?#{request.query_string}" }, via: :get
但它不会将我重定向到localhost
而不是foobar.com
主机。
注意:该URL对应于同一受控域的网站。当前的应用程序只是一个无状态API,没有HTML呈现中间件。我需要重定向到位于同一域上其他位置的JS应用程序。此外,查询字符串中的信息是公共域。
谢谢,
微米。
答案 0 :(得分:0)
在您的控制器中,使用_path
后缀而不是_url
来指定重定向目标:
redirect_to another_host_path(params.except(:action, :controller))
通过根据用户提供的内容重定向到URL,确保您不会遇到问题。我认为brakeman
gem会强调这是一个潜在的安全漏洞。