I would prefer an object method that return the right formatted result (hash etc).
serializing the object it self is not a good idea imho and hard to keep compatibility.

if you do pass an id, you need to use the after_commit callback instead, as it might not be readable just yet.