Load a has_one target for a new record if possible

Fixes #18086
How about we put it in a module? `ForeignAssociation`?