将参数数组传递给链接

时间:2017-07-01 08:35:28

标签: ruby-on-rails arrays ruby

考虑以下rails链接:

>>> urllib.parse.parse_qs('status=ok&info=00005')
{'status': ['ok'], 'info': ['00005']}


>>> urllib.parse.parse_qsl('status=ok&info=00005')
[('status', 'ok'), ('info', '00005')]
>>> dict(urllib.parse.parse_qsl('status=ok&info=00005'))
{'status': 'ok', 'info': '00005'}

这里有很多重复。是否可以在数组中定义这些参数并将它们传递到链接中?例如。

search_path(:query => params[:query], type: params[:type], sort: params[:sort])

1 个答案:

答案 0 :(得分:2)

我想不出你怎么能把它像你所展示的那样完全传递给你,但是你可以这样做:

search_path(params.slice(:query, :type, :sort))

这将为您提供与您传入的相同的哈希值。在我看来,它有点清洁。

parameters = ActionController::Parameters.new(query: 'query', type: 'type', sort: 'sort', other: 'other')
=> {"query"=>"query", "type"=>"type", "sort"=>"sort", "other"=>"other"}

parameters.slice(:query, :type, :sort)
=> {"query"=>"query", "type"=>"type", "sort"=>"sort"}