I've gone through multitudes of different methods for getting asynchronous file uploads to work nicely in Rails. The most painful being my own JS implementation of XHR uploads + iframe fallback for Rails 2.
Today I discovered Remotipart which solves a lot of problems. It's a nice plug & play solution. Include the gem in your gemfile, throw a line in your asset manifest and you're done.
I'm disappointed that the best I can find is iframe based, but it works so I can stop caring and move along.
That gem again is Remotipart.