lib/ampere/model.rb in ampere-1.2.0 vs lib/ampere/model.rb in ampere-1.2.1

- old
+ new

@@ -135,12 +135,14 @@ # Grab a fresh GUID from Redis by incrementing the "__guid" key if @id.nil? then @id = Ampere.connection.incr('__guid') end - self.attributes.each do |k, v| - Ampere.connection.hset(key_for_find(self.class, @id), k, k =~ /_id$/ ? v : Marshal.dump(v)) + Ampere.connection.multi do + self.attributes.each do |k, v| + Ampere.connection.hset(key_for_find(self.class, @id), k, k =~ /_id$/ ? v : Marshal.dump(v)) + end end self.class.indices.each do |index| if index.class == String or index.class == Symbol then Ampere.connection.hset( @@ -327,12 +329,14 @@ end end define_method(:"#{field_name}=") do |val| val.each do |v| - Ampere.connection.sadd(key_for_has_many(to_s.downcase, self.id, field_name), v.id) - # Set pointer for belongs_to - Ampere.connection.hset(key_for_find(v.class, v.id), "#{my_klass_name}_id", self.send("id")) + Ampere.connection.multi do + Ampere.connection.sadd(key_for_has_many(to_s.downcase, self.id, field_name), v.id) + # Set pointer for belongs_to + Ampere.connection.hset(key_for_find(v.class, v.id), "#{my_klass_name}_id", self.send("id")) + end end end end # Defines an index. See the README for more details.