Hi fellows!

Is there a way to atomically exchange values of records which are validated 
using 'validates_uniqueness_of'?
Some details follow.

Imagine I have a model:

class Item < ActiveRecord::Base
   validates_uniqueness_of :weight
end

'weight' is a sorting weight.

I have an index.html view which has a list of "Item" records wrapped in 
jQueryUI's sortable container.
My goal is to do some ajax request (POST i guess) whenever user changes 
items' order. I.e. i plan to do end up with controller action that calls 
function like:

class Item
  def self.exchange_weights(id1, id2)
     item1 = Item.find(id1)
     item2 = Item.find(id2)
     weight1 = Item.find(id1).weight
     weight2 = Item.find(id2).weight
     item1.weight = some_temp_weight
     item2.weight = weight1
     item1.weight = weight2
  end
end

Is this the right way to do this?
Or can I somehow just do a separate POST requests on these Item's instances 
by triggering ItemsController#update for each of them and passing weight - 
but here validations would not allow me to do this unless I miss something 
- that's why I desided to ask :)

Thanks.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/rubyonrails-talk/-/xOuZts86q58J.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to