我无法解决这个问题。
url = "www.mysite.com/?param1=abc"
redirect_to(url, :param2 => 'xyz')
### Should this go to - www.mysite.com/?param1=abc¶m2=xyz
还是我错过了什么?它似乎不起作用?
我无法解决这个问题。
url = "www.mysite.com/?param1=abc"
redirect_to(url, :param2 => 'xyz')
### Should this go to - www.mysite.com/?param1=abc¶m2=xyz
还是我错过了什么?它似乎不起作用?
从文档中:
重定向到(选项 = {},响应状态 = {})
将浏览器重定向到选项中指定的目标。此参数可以采用以下三种形式之一:
哈希 - 将通过使用选项调用 url_for 来生成 URL。
记录 - 将通过使用选项调用 url_for 生成 URL,该选项将引用该记录的命名 URL。
以 protocol://(如 http://)或协议相对引用(如 //)开头的字符串 - 作为重定向目标直接传递。
您将 String 作为第一个参数传递,因此它使用第三个选项。您的第二个参数被解释为参数的值response_status
。
因此,如果您的重定向是内部重定向(指向同一个应用程序),则无需指定方案和主机名。只需使用
redirect_to root_url(param1 => 'abc', param2 => 'xyz')
如果是外部 URL,请在重定向之前构建完整的 URL:
url = "www.mysite.com/?param1=abc¶ms2=xyz"
redirect_to url
除非您将它们合并并发送,否则它不会知道旧参数。
url = "www.mysite.com/?param1=abc"
p = params.merge({:param2 => 'xyz'})
redirect_to(url, p)