why are these items being persisted?

hi steven,

this is what i know,

in your feed model i guess there is a association defined, with
"items" as name of association,
so when ever you do some thing like feed.items = {Some Item Objects}
that will be associated to
this feed db object(row). (i don't know whether you can override this
behaviour)

So, in this case if do this it works fine,
class Feed < ActiveRecord::Base
      attr_accesor :related_tmp_items # just name sake

has_many :items

def initialize(*args)
      super(*args)
      @related_tmp_items=nil
end

end

now if i say something like this,

feed.related_tmp_items = Item.find() # find what ever i want..

Note:
One more way is ( i din't try this), using Transaction::Simple..
using that you can start your transaction before items are assigned
and rollback the transaction when you don't want.

You may face same problem if you try something like this.

feed.item_ids = {list of item object id's}.. # basically many to many
relation-ship

P.s: Sorry if i am not answering your problem statement.