On Jun 13, 5:21 am, gerbdla <[email protected]> wrote:
> Hi not sure if this is where I should post this problem but since
> upgrading to rails 3.07 dup is not working as expected for Hash
>
> basically in method I have this
> dup_row = row.dup
> #then I delete a row of my original hash
> row[:athlete].delete(:sports) if !row[:athlete][:sports].nil?
>
> pretty simple but what is happening is it is deleting from the dup
> and the original here is the debug
> code of the original and dup just after deleting the sports
>
Hash#dup does a shallow copy in ruby (ie ruby doesn't recursively dup
the hash's contents) - this is expected.
Fred
> original hash values
>
> {"athlete"=>{"first_name"=>"DaveG5600", "gender"=>"M",
> "hometown_id"=>"40", "birthplace_id"=>"30", "last_name"=>"test"},
> "leagues"=>{"league"=>{"id"=>"821", "start_year"=>"1983",
> "end_year"=>"2003"}}, "clubs"=>{"club"=>[{"id"=>"11802",
> "start_year"=>nil, "end_year"=>nil}, {"id"=>"1403", "start_year"=>nil,
> "end_year"=>nil}]}, "schools"=>{"school"=>{"id"=>nil,
> "start_year"=>nil, "end_year"=>nil}},
> "sports"=>{"sport"=>{"id"=>"102", "start_year"=>"1985",
> "end_year"=>"1986", "sport_roles"=>"10"}}}}
>
> dup row (notice sports is missing which even though I am not deleting
> from this hash)
> {"athlete"=>{"first_name"=>"DaveG5600", "gender"=>"M",
> "hometown_id"=>"40", "birthplace_id"=>"30", "last_name"=>"test"},
> "leagues"=>{"league"=>{"id"=>"821", "start_year"=>"1983",
> "end_year"=>"2003"}}, "clubs"=>{"club"=>[{"id"=>"11802",
> "start_year"=>nil, "end_year"=>nil}, {"id"=>"1403", "start_year"=>nil,
> "end_year"=>nil}]}, "schools"=>{"school"=>{"id"=>nil,
> "start_year"=>nil, "end_year"=>nil}}}}
>
> row (this is where I expect to have the sport value deleted which is
> does)
> {"athlete"=>{"first_name"=>"DaveG5600", "gender"=>"M",
> "hometown_id"=>"40", "birthplace_id"=>"30", "last_name"=>"test"},
> "leagues"=>{"league"=>{"id"=>"821", "start_year"=>"1983",
> "end_year"=>"2003"}}, "clubs"=>{"club"=>[{"id"=>"11802",
> "start_year"=>nil, "end_year"=>nil}, {"id"=>"1403", "start_year"=>nil,
> "end_year"=>nil}]}, "schools"=>{"school"=>{"id"=>nil,
> "start_year"=>nil, "end_year"=>nil}}}}
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.