diff options
author | Jakub Suder <jakub.suder@gmail.com> | 2010-08-29 16:10:31 +0200 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2010-09-07 11:33:10 -0700 |
commit | 2524cf404ce943eca8a5f2d173188fd0cf2ac8b9 (patch) | |
tree | 0d589e9e06623d0bda440b78ccd93a426c2e4807 /activerecord/lib | |
parent | 2e8a3d0f43d7b394873ce21396ae49feacb99a74 (diff) | |
download | rails-2524cf404ce943eca8a5f2d173188fd0cf2ac8b9.tar.gz rails-2524cf404ce943eca8a5f2d173188fd0cf2ac8b9.tar.bz2 rails-2524cf404ce943eca8a5f2d173188fd0cf2ac8b9.zip |
fixed some issues with JSON encoding
- as_json in ActiveModel should return a hash
and handle :only/:except/:methods options
- Array and Hash should call as_json on their elements
- json methods should not modify options argument
[#5374 state:committed]
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/relation.rb | 4 | ||||
-rw-r--r-- | activerecord/lib/active_record/serialization.rb | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb index c678ef3bcc..478f1e8ef1 100644 --- a/activerecord/lib/active_record/relation.rb +++ b/activerecord/lib/active_record/relation.rb @@ -76,7 +76,9 @@ module ActiveRecord @records end - def as_json(options = nil) to_a end #:nodoc: + def as_json(options = nil) #:nodoc: + to_a.as_json(options) + end # Returns size of the records. def size diff --git a/activerecord/lib/active_record/serialization.rb b/activerecord/lib/active_record/serialization.rb index 6ec406316a..ad3f7afd6f 100644 --- a/activerecord/lib/active_record/serialization.rb +++ b/activerecord/lib/active_record/serialization.rb @@ -5,7 +5,7 @@ module ActiveRecord #:nodoc: include ActiveModel::Serializers::JSON def serializable_hash(options = nil) - options ||= {} + options = options.try(:clone) || {} options[:except] = Array.wrap(options[:except]).map { |n| n.to_s } options[:except] |= Array.wrap(self.class.inheritance_column) |