# As\_json for arrays?

**URL:** <https://www.ruby-forum.com/t/as-json-for-arrays/184680>\
**Category:** Rails\
**Created:** [March 6, 2010, 4:52pm UTC](https://www.ruby-forum.com/t/as-json-for-arrays/184680 "2010-03-06T16:52:26Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![benol](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/bb73d2/32.png) [@benol](https://www.ruby-forum.com/u/benol)\
**Post date:** [March 6, 2010, 4:52pm UTC](https://www.ruby-forum.com/t/as-json-for-arrays/184680/1 "2010-03-06T16:52:26Z")

</div>

Hi.

The file  
/rails/activesupport/lib/active\_support/json/encoders/enumerable.rb

Has:

class Array  
(…)  
def as\_json(options = nil) #:nodoc:  
self  
end  
end

I want a as\_json method FooModel.all.as\_json(:only =\> […]) that will  
work same as FooModel.first.as\_json(:only =\> […]).

I had to write my own method in a initializer:  
class Array  
def as\_json\_preserve\_only\_keys(preserve\_keys)  
self.collect do |el|  
el.as\_json(:only =\> preserve\_keys)  
end  
end  
end

Is there a better way to do this? Why does the Array method now look at  
the “options” parameter?
