Pet*_*ter 7 redirect ruby-on-rails query-string ruby-on-rails-4
我认为这应该很容易,但我不能为我的生活让它工作,或在网上找到解释它的任何东西.表单提交后,我想重定向回referer/referrer并更改或删除一个或多个查询参数.
例如,表格是
/tasks/6?foo=1&bar=1
Run Code Online (Sandbox Code Playgroud)
我想事后去
/tasks/6?foo=0&bar=1
Run Code Online (Sandbox Code Playgroud)
我尝试了各种各样的组合
redirect_to :back, foo: 0
Run Code Online (Sandbox Code Playgroud)
要么
redirect_to :back, params: {foo: 0, bar: 1}
Run Code Online (Sandbox Code Playgroud)
等等,但没有任何东西可以将我重定向到原始页面以外的任何内容.我本来希望避免不得不用字符串自行修改,但它可能会出现这种情况.
如果还有一种方法可以完全摆脱参数,例如重定向到:它也会很棒.
/tasks/6?bar=1
Run Code Online (Sandbox Code Playgroud)
谢谢!
:back不接受其他参数。为了完成您想做的事情,您需要使用以下方法获取引荐来源网址的值
request.referer
Run Code Online (Sandbox Code Playgroud)
要么
request.env['HTTP_REFERER']
Run Code Online (Sandbox Code Playgroud)
用URI库解析它,提取查询并用分解Rack::Utils.parse_query。至此,您已经有了params的哈希值。
您可以更新哈希,并构造重定向的URL。
| 归档时间: |
|
| 查看次数: |
4411 次 |
| 最近记录: |