分配与ruby散列中的键相对应的值



在我的url中,我有一个传递给rails控制器的参数。所以控制器中的参数将是

params={
  "key1"=>"business", "value1"=>"shoes",
  "key2"=>"date","value2"=>"2014",
  "key3"=>"price", "value3"=>"3000"
}

我需要将相应的键映射到值,并将结果存储在哈希中。所以输出将是

{"business"=>"shoes", "date"=>"2014", "price"=>"3000"}

我该怎么做。请帮忙。

可能有一种更优雅的方法,但这是我的第一次尝试。这假设您最初可能拥有任何顺序的键/值,但具体命名为keyNvalueN

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

相关内容

  • 没有找到相关文章