在我的网址中,我将参数传递给rails控制器。 因此控制器中的参数将是
params={
"key1"=>"business", "value1"=>"shoes",
"key2"=>"date","value2"=>"2014",
"key3"=>"price", "value3"=>"3000"
}
我需要将相应的键映射到值并将结果存储在hash中。因此输出将是
{"business"=>"shoes", "date"=>"2014", "price"=>"3000"}
我该怎么做。请帮忙。
答案 0 :(得分:0)
可能有更优雅的方法,但这是我的第一次拍摄。这假设您最初可能具有任何顺序的键/值,但具体名称为keyN
和valueN
。
params={
"key1"=>"business", "value1"=>"shoes",
"key2"=>"date","value2"=>"2014",
"key3"=>"price", "value3"=>"3000"
}
keys = Array.new
values = Array.new
params.each do |k,v|
m = k.match(/(key|value)(\d+)/)
eval("#{m[1]}s[#{m[2]}] = '#{v}'") if m
end
hash_values = Hash[keys.zip(values)].delete_if { |k| k.nil? }
# => {"business"=>"shoes", "date"=>"2014", "price"=>"3000"}