考虑以下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])
答案 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"}