Call AR belongs_to association accessor ID method on object assignment

Hi,

Haven't been able to find this raised before but I'm sure it must have
been. When assigning an object to a belongs_to association I would
like it to call the *association*_id= method instead of directly
updating the attributes array. This is because I want to modify the
behaviour when assigning a particular object without writing separate
methods for whether it's just an ID being assigned or a full object.

Example:
a = Author.find(2)
b = Book.new
b.author = a # Should call b.author_id=(val)

Is there already a simple way to achieve this? (without having to run
validation)

Changing it would be a one-line patch, but can anyone think of
problems this would introduce?

Thanks,
Andrew

Hi,

Haven't been able to find this raised before but I'm sure it must have
been. When assigning an object to a belongs_to association I would
like it to call the *association*_id= method instead of directly
updating the attributes array. This is because I want to modify the
behaviour when assigning a particular object without writing separate
methods for whether it's just an ID being assigned or a full object.

There's a ticket on lighthouse about this, I seem to recall there's a
patch too.

Fred