gpt4 book ai didi

ruby-on-rails - Rails - 在没有 GET 参数的情况下重定向到当前 url

转载 作者:行者123 更新时间:2023-12-03 10:53:31 24 4
gpt4 key购买 nike

我在 Rails 应用程序中有一个非常简单的问题,我找不到优雅的解决方案。

我有一个像这样的网址:
http://www.example.com/some-path/?foo=123&baz=456

我想处理其中一个参数并重定向到:
http://www.example.com/some-path/?baz=456

我希望这通常适用于任何带有参数“foo”的 URL,所以我不想在重写代码中指定“baz”。

我想要的是这样的:

redirect_to request.path, :params => request.query_parameters.except(:foo)

除了这不太奏效。我知道我可以手动正则表达式或解析查询字符串,但我认为有更好的方法。

最佳答案

到目前为止我发现的最好方法是使用:

url_for(params.except(:obsolete_param_name))

更新

grosser提到这会在您的应用程序中打开一个安全漏洞,因为攻击者可以将主机作为 url 参数传递并将用户重定向到不同的网站。为了防止这种情况,您可以使用 rap1ds的建议并指定仅必须使用路径。

为此,您可以使用这样的辅助函数:
def secure_path_for(params, *excluded_params)
url_for(params.except(*excluded_params).merge(only_path: true))
end

关于ruby-on-rails - Rails - 在没有 GET 参数的情况下重定向到当前 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13461178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com