For instance, on a before_save callback, the value from the association 
traversal is still the new value. It seems no matter how far back I go in 
the callback chain, that this is the case.

On Friday, 7 July 2017 14:12:31 UTC-4, Alex Morton wrote:
>
> Hmm, when you say re-read from the database here, this read is done within 
> the same transaction as the callback chain? Was just curious to see the new 
> value from the association traversal instead of the old one.
>
> On Friday, 7 July 2017 12:56:24 UTC-4, Colin Law wrote:
>>
>> On 7 July 2017 at 15:25, Alex Morton <[email protected]> wrote: 
>> > I have a model called Dataset which registers an after_save callback to 
>> do 
>> > some work when its name attribute has changed. This callback is 
>> manipulating 
>> > a DatasetLink model but the association between the two is through 
>> another 
>> > model called Attribute. 
>> > 
>> > The scenario I'm hoping to come to an explanation for is this: 
>> > Within the after_save callback, the immediate reference to the Dataset 
>> model 
>> > that's changing returns true for name_changed? and changed?. However, 
>> when 
>> > traversing the association to a DatasetLink record, the link's 
>> reference to 
>> > the dataset has the new value for the name but it doesn't register the 
>> > dataset as being changed nor the name being changed. It just has the 
>> new 
>> > name. 
>>
>> Since traversing the associations probably means that the record will 
>> be re-read from the database it is correct that the changed flags are 
>> not set (for that in-memory record), as the value of name in the 
>> record in memory has not changed since it was read. 
>>
>> Colin 
>>
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/108e75e4-081c-4b19-9609-952eb2035b65%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to