Is it possible in Rails to add an association to an existing record without immediately commiting this change to the database?
E.g. if I have Post has_many :tags
post.tags << Tag.first
post.tags.build name: "whatever"
post.tags << Tag.first # don't hit the DB here!
post.save # hit the DB here!
This should work in Rails 3.2 and Rails 4:
See this gist: https://gist.github.com/betesh/dd97a331f67736d8b83a
Note that saving the parent saves the child and that child.parent_id is NOT set until you save it.
EDIT 12/6/2015: For a polymorphic record:
post.association(:tags).send(:build_through_record, Tag.first) # Tested in Rails 4.2.5