2017-07-01 119 views
0

考慮下面的鐵軌鏈接:傳遞數組的鏈接

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

有很多重複的在這裏。是否可以在數組中定義這些參數並將它們傳遞給鏈接?例如。

params: [:query, :type, :sort] # -> pass each into the link like "key: value" 
+0

有點不清楚你在問什麼。你的意思是'search_path(:data => [params [:query],params [:type],params [:sort]])'? – Priya

+0

問題更新@priya,謝謝 –

回答

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"}