我无法解决这个问题。
url = "www.mysite.com/?param1=abc"
redirect_to(url, :param2 => 'xyz')
### Should this go to - www.mysite.com/?param1=abc¶m2=xyz
或者我错过了什么?它似乎不起作用?
答案 0 :(得分:8)
redirect_to(options = {},response_status = {})
将浏览器重定向到选项中指定的目标。这个 参数可以采用以下三种形式之一:
哈希 - 将通过使用选项调用url_for来生成URL。
记录 - 将通过调用url_for生成URL 选项,它将引用该记录的命名URL。
以protocol://开头的字符串(如http://)或协议相对 引用(如//) - 作为目标直接传递 重定向。
你传递一个String作为第一个参数,所以它使用第三个选项。您的第二个参数被解释为response_status
参数的值。
因此,如果您的重定向是内部重定向(到同一个应用程序),则无需指定方案和主机名。只需使用
redirect_to root_url(param1 => 'abc', param2 => 'xyz')
如果是外部网址,请在重定向之前构建完整网址:
url = "www.mysite.com/?param1=abc¶ms2=xyz"
redirect_to url
答案 1 :(得分:3)
redirect_to
不是Ruby函数,但通常用于Ruby on Rails。您可以通过大量工作示例找到其文档here。
如果您想在纯Ruby中打开网站,请使用' open-uri'类。您可以找到其文档here。
我希望这有助于理解为什么redirect_to
不能在纯Ruby中工作,并且可能有助于在有和没有Rails的情况下使用它。
答案 2 :(得分:2)
url = "www.mysite.com/?param1=abc"
p = params.merge({:param2 => 'xyz'})
redirect_to(url, p)