On 2007-03-05 17:00:58 +0100, Robert Klemme <shortcutter / googlemail.com> said: > On 05.03.2007 16:37, hemant wrote: >> On 3/5/07, Josselin <josselin / wanadoo.fr> wrote: >>> I am trying to nest 2 blocks, it's wrong but but I cannot find why .. >>> need some help.. I get only one resulting item >>> >>> I get info in geocodes Array (3 items) , need to get some of them into >>> 'places' another Array >>> >>> places = [ {:search => adresse}] >>> >>> geocodes.each { | geocode | >>> places.collect { | place | >>> place[:address] = geocode[:address] >>> place[:latitude] = geocode[:latitude] >>> place[:longitude] = geocode[:longitude] >>> } >>> } >>> >>> geocodes.nitems => 3 >> >> #collect doesn't modify the existing Enumerable and normally returns >> a Enumerable/Array. >> In other words, your inner block doesn't modify places array at all. > > No need for collect or collect! at all since he is modifying the > Hash(es) inside places. And since places contains only 1 element it > still does so after the iteration. Josselin, what do you expect to get? > > Kind regards > > robert Thanks for your comments.. well I expect to get 3 items (one for each geocodes item) where places[i][:longitude] = geocodes[i][:longitude], ..... I know that I could do an iteration (as in C) but I tried to do it without using an indexation ... places[i] => {:longitude=> geocodes[i][longitude], :latitude=>geocodes[i][longitude], :address=>geocodes[i][address]} joss