Sortables, acts_as_list and performance

Hi!

I have a reordering feature for one of my models. It's done with Sortables JS component that sends an Ajax request with a hash of new positions for each item after reordering, with the following action that processes it:

  def reorder     params[:pos].each do |id, pos|       @user.activities.find(id).insert_at(pos)     end     head :ok   end

I'm using acts_as_list to recalculate positions.

Everything works, but I have a problem: for EVERY activity that was moved there are 5 requests to the database (1 select and 4 updates, which in their turn are quite CPU-intensive because position recalculation involves updating most of the list items).

Did someone solve a similar problem? Any advices on making reordering not so resource-hungry and slow?