ruby-on-rails – 如何从Rails中的URL查询中解析多值字段

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 如何从Rails中的URL查询中解析多值字段前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的网址为http://www.example.com?foo=one\u0026amp;foo=two

我想为foo得到一个值数组[‘one’,’two’],但是params [:foo]只返回第一个值.

我知道如果我在URL中使用foo []而不是foo,那么params [:foo]会给我所需的数组.

但是,我希望尽可能避免更改URL的结构,因为它的表单作为规范提供给客户端应用程序.是否有一种很好的方法获取所有值而不更改参数名称

解决方法

您可以使用默认的 Ruby CGI模块来解析Rails控制器中的查询字符串,如下所示:
params = CGI.parse(request.query_string)

这将为您提供所需的内容,但请注意,您不会获得任何Rails其他扩展来查询字符串解析,例如使用HashWithIndifferentAccess,因此您将不得不使用String而不是Symbol键.

另外,我不相信你可以用一行设置这样的参数并覆盖默认的rails参数内容.根据您希望进行此更改的程度,您可能需要修补或修改内部结构.然而,如果你想要进行全局更改,那么快速的事情就是将它放在application.rb中的before过滤器中并使用像@raw_params这样的新实例var

猜你在找的Ruby相关文章