mirror of
https://github.com/github/rails.git
synced 2026-01-29 08:18:03 -05:00
Factor out checks for duplicable objects. Closes #9333.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7908 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
@@ -2205,13 +2205,7 @@ module ActiveRecord #:nodoc:
|
||||
|
||||
def clone_attribute_value(reader_method, attribute_name)
|
||||
value = send(reader_method, attribute_name)
|
||||
|
||||
case value
|
||||
when nil, Fixnum, true, false
|
||||
value
|
||||
else
|
||||
value.clone
|
||||
end
|
||||
value.duplicable? ? value.clone : value
|
||||
rescue TypeError, NoMethodError
|
||||
value
|
||||
end
|
||||
|
||||
@@ -74,13 +74,10 @@ module ActiveRecord
|
||||
@query_cache[sql] = yield
|
||||
end
|
||||
|
||||
case result
|
||||
when Array
|
||||
if Array === result
|
||||
result.collect { |row| row.dup }
|
||||
when nil, Fixnum, Float, true, false
|
||||
result
|
||||
else
|
||||
result.dup
|
||||
result.duplicable? ? result.dup : result
|
||||
end
|
||||
rescue TypeError
|
||||
result
|
||||
|
||||
Reference in New Issue
Block a user