This does fix the issue for us because we are so far only referencing the 
reciprocal association in the validate method, however I think there is 
still an issue with the reciprocal association being cleared that is not 
present for other association types.

I updated the gist to reproduce:

https://gist.github.com/benalavi/20817b785a08d16912f82ce31afde029

The one_to_one association (cover) is now validated only once, however the 
reciprocal association (album) is present when validate is called, but then 
is nil when after_save is called. I would guess that this could cause 
issues especially since it doesn't happen for the one_to_many association.

Output of the gist w/ the validation fix:

create Album + one_to_many Artist + one_to_one Cover
#<Artist:0x007f52c4b688e8> validate #<Album:0x007f52c4b6b890>
#<Cover:0x007f52c51e5b30> validate #<Album:0x007f52c4b6b890>
#<Artist:0x007f52c4b688e8> after_save #<Album:0x007f52c4b6b890>
#<Cover:0x007f52c51e5b30> after_save #<Album:0x007f52c4b5ce08>
create Album
update Album + one_to_many Artist
#<Artist:0x007f52c52018a8> validate #<Album:0x007f52c5203bf8>
#<Artist:0x007f52c52018a8> after_save #<Album:0x007f52c5203bf8>
update Album + one_to_one Cover
#<Cover:0x007f52c520fd18> validate #<Album:0x007f52c5203bf8>
#<Cover:0x007f52c520fd18> after_save 

^ In that last line the album reference is nil

On Thursday, December 13, 2018 at 7:57:09 AM UTC-8, Jeremy Evans wrote:
>
> On Thursday, December 13, 2018 at 7:34:01 AM UTC-8, Jeremy Evans wrote:
>>
>> On Wednesday, December 12, 2018 at 11:55:14 PM UTC-8, Ben Alavi wrote:
>>>
>>> Hey Jeremy,
>>>
>>> I believe this is a bug:
>>>
>>> Example: 
>>> https://gist.github.com/benalavi/20817b785a08d16912f82ce31afde029
>>>
>>> The create works, the update fails.
>>>
>>> Both the create and update call validate twice on the one_to_one 
>>> associated model, validate is only called once for the one_to_many 
>>> associated model.
>>>
>>> During the update the reciprocal association is set when validate is 
>>> called for the first time, and is nil the second time.
>>>
>>> The bug looks like it appeared in 5.10.0, example works in 5.9.0
>>>
>>> Getting late so I haven't dug into a fix yet but I thought I'd post it 
>>> because it looks like it might be the same issue or related to the recent 
>>> change for one_to_many relationships.
>>>
>>
>> Thanks for the reproducible example, this definitely looks like a bug.  
>> I'll work on a fix right away.
>>
>
> This should be fixed by 
> https://github.com/jeremyevans/sequel/commit/1d99e02723fb1fca5ec3faab0c701c15c4815971,
>  
> could you please test that and let me know whether it fixes the issue for 
> you?
>
> Thanks,
> Jeremy 
>

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-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].
Visit this group at https://groups.google.com/group/sequel-talk.
For more options, visit https://groups.google.com/d/optout.

Reply via email to