From: Ch Ba Date: 2009-06-19T03:57:05+09:00 Subject: Re: Modifying data in an array using a reference Joel VanderWerf wrote: > Ch Ba wrote: >> Ok so my situation is as follows. I have an array "foo", which contains >> several instances of the class "bar". I get a copy of an object inside >> of "foo" using foo.detect, and then modify that copy. Afterwards, I >> need to replace the original inside the array with the modified version. >> The problem is that I do not know the index of the object. How would I >> go about doing that? I could use some help =) > > You're working with the original foo, not a copy, so you don't need to > replace the entry at a certain index: > > class Bar > attr_accessor :x > def initialize x > @x = x > end > end > > foo = [Bar.new(0), Bar.new(1)] > p foo > > bar = foo.detect {|bar| bar.x > 0} > bar.x = "changed" > p foo > > [#, #] > [#, #] Thank you very much for the quick answers. I realized what I was doing wrong and was in the process of fixing it when I remembered I should remove my post. The issue was a mistake in the initialization of the class and had nothing to do with accessing the array. I was really confused about why it didn't seem to be modifying the original. -- Posted via http://www.ruby-forum.com/.