Mas*_*ise 14 redirect ruby-on-rails
由于Rails升级,我们刚刚使用了redirect_to break,这导致了一个问题.我一直在尝试,我似乎还没有找到一种方法,使用redirect_to的用户发送到与查询参数的非Rails的页面追加,除了通过手动构造URL字符串,这似乎是一个耻辱.以前,只是一个简单的:
redirect_to "http://www.web.com/myurl" "parm"
Run Code Online (Sandbox Code Playgroud)
工作 - 它将"parm"附加到URL,并正确处理多个parms.情况已经不再如此,所以我想知道是否有新的/更好的方法来做到这一点.文档暗示包含哈希应该有效,但它不会:
redirect_to ("http://www.web.com/myurl", :parm => "foo")
redirect_to ("http://www.web.com/myurl", { :parm => "foo" } )
Run Code Online (Sandbox Code Playgroud)
两者都不起作用.手动构建URL字符串工作正常,但有没有人有一个咒语,使这项工作更好的方式?
根据文档,任何无法识别的参数都会url_for
传递给 Route 模块,因此理论上,除非您的参数覆盖了它查找的默认参数之一,否则您的代码应该可以工作。
但是,:overwrite_params
您应该可以传递一个散列:
redirect_to 'http://www.web.com/myurl', :overwrite_params => { :parm => 'foo' }
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
运行Rails 5.0,发现这是最简单的解决方案:
args = { foo: 'bar' }
redirect_to 'https://otherwebsite.com/path?' + args.to_query
Run Code Online (Sandbox Code Playgroud)
我在此页面上找到的唯一可行的其他解决方案是在指定主机时(请参阅Topher Fangio在他自己的文章中的评论),但是,如果原始URL位于其他端口上,则还必须指定端口(开发环境通常是这种情况)。
归档时间: |
|
查看次数: |
20022 次 |
最近记录: |