75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
# File 'lib/mover/record.rb', line 75
def move_to(type)
return if self.respond_to?(:moved_from_class)
klass = self.class.send :movable_class, type
if klass
if !self.movable_id && klass.column_names.include?('move_id')
self.movable_id = Digest::MD5.hexdigest("#{self.class.name}#{self.id}")
end
self.class.reflect_on_all_associations.each do |association|
if move_association?(association)
self.send(association.name).each do |record|
record.movable_id = self.movable_id
record.move_to(type)
end
end
end
me = self
conditions = "#{self.class.primary_key} = #{id}"
self.class.send(:execute_move, self.class, klass, conditions) do |insert, select|
if me.movable_id
insert << connection.quote_column_name('move_id')
select << connection.quote(self.movable_id)
end
end
self.movable_id = nil
end
end
|