重定向到外部URL和routes.rb配置文件

时间:2014-06-05 15:05:51

标签: ruby-on-rails ruby

我想重定向到具有当前控制器参数的特定网址。 如果我能用命名路线做到这一点会很好。

我实际上有一个控制器包含:

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应用程序。此外,查询字符串中的信息是公共域。

谢谢,

微米。

1 个答案:

答案 0 :(得分:0)

在您的控制器中,使用_path后缀而不是_url来指定重定向目标:

redirect_to another_host_path(params.except(:action, :controller))

通过根据用户提供的内容重定向到URL,确保您不会遇到问题。我认为brakeman gem会强调这是一个潜在的安全漏洞。