Andrew:
If you're using draggable_element, you'll give it a name. For instance, if you had a big grid, you could use this for every x and y value. <%= draggable_element "location_1_1", :revert => true %>
This would be the draggable_element: <div id="location_1_1">Drag Me</div>
You can use the same element as a receiver that responds with an action when a draggable_element is dropped onto it: <%= drop_receiving_element "location_1_1", :url => { :action => "update_location", :new_x => 1, :new_y => 1} %>
Then you can handle assigning the dragged (new) to dropped spot (old). def update_location div, @oldrow, @oldslot = params[:id].split("_") @newrow, @newslot = params[:newrow], params[:newslot] @newloc = Location.find_by_row_and_slot(@newrow, @newslot) # do a page.redirect_to or page.update so show the updates we just made end
I've used this for about a year and it's pretty handy.
Hope this helps! Let me know if you have any questions.
-- Wes