attachment_fu 'replace' method?

Have you considered using acts_as_versioned ?

http://wiki.rubyonrails.org/rails/pages/ActsAsVersioned