diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index 1770026bb4b08..8b022ef6d4980 100755 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -808,17 +808,7 @@ def destroy # Returns a clone of the record that hasn't been assigned an id yet and is treated as a new record. def clone - attr = Hash.new - - self.attribute_names.each do |name| - begin - attr[name] = read_attribute(name).clone - rescue TypeError - attr[name] = read_attribute(name) - end - end - - cloned_record = self.class.new(attr) + cloned_record = self.class.new(self.attributes) cloned_record.instance_variable_set "@new_record", true cloned_record.id = nil cloned_record