加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 04:33:23 所属栏目:百科 来源:网络整理
导读:我的网址为http://www.example.com?foo=oneu0026amp;foo=two 我想为foo得到一个值数组[‘one’,’two’],但是params [:foo]只返回第一个值. 我知道如果我在URL中使用foo []而不是foo,那么params [:foo]会给我所需的数组. 但是,我希望尽可能避免更改URL的
我的网址为http://www.example.com?foo=oneu0026amp;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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读