由於PARAMS基本上是一個哈希你可以使用Hash#each:
params = "request"=>{"name"=>"Gianni Hayes",
"address"=>"5858 Bernhard Burgs",
"phone"=>"(972) 399-9601",
"mobile"=>"777 777 01 02",
"filled_cartridges_attributes"=>{
"0"=>{
"cartridge_id"=>"HP laserjet 300",
"_destroy"=>"false"}
},
"description"=>"sakld",
"responsible"=>"15"}
}
params["request"].each { |key, value| puts key.to_s + " : " + value.to_s }
# name : Gianni Hayes
# address : 5858 Bernhard Burgs
# phone : (972) 399-9601
# mobile : 777 777 01 02
# filled_cartridges_attributes : {"0"=>{"cartridge_id"=>"HP laserjet 300", "_destroy"=>"false"}}
# description : sakld
# responsible : 15
或者以遞歸方式將其作爲哈希散列值:
def deep_traverse(hash)
hash.each do |key, val|
puts key
if val.is_a?(Hash)
display val
else
puts val
end
end
end
deep_traverse params
# request
# Gianni Hayes
# 5858 Bernhard Burgs
# (972) 399-9601
# 777 777 01 02
# HP laserjet 300
# false
# sakld
# 15
the params obje ct基本上只是一個(嵌套的)散列,你可以像正常的散列一樣迭代元素。 'hsh.each'等。 – Slicedpan