instance method
to_json
Ruby on Rails 2.2.3
Since v2.2.3 Last seen in v2.3.18Available in: v2.2.3 v2.3.18
Signature
to_json(options = {})
Returns a JSON string representing the model. Some configuration is available through options.
Without any options, the returned JSON string will include all the model’s attributes. For example:
konata = User.find(1)
konata.to_json
# => {"id": 1, "name": "Konata Izumi", "age": 16,
"created_at": "2006/08/01", "awesome": true}
The :only and :except options can be used to limit the attributes included, and work similar to the attributes method. For example:
konata.to_json(:only => [ :id, :name ]) # => {"id": 1, "name": "Konata Izumi"} konata.to_json(:except => [ :id, :created_at, :age ]) # => {"name": "Konata Izumi", "awesome": true}
To include any methods on the model, use :methods.
konata.to_json(:methods => :permalink)
# => {"id": 1, "name": "Konata Izumi", "age": 16,
"created_at": "2006/08/01", "awesome": true,
"permalink": "1-konata-izumi"}
To include associations, use :include.
konata.to_json(:include => :posts)
# => {"id": 1, "name": "Konata Izumi", "age": 16,
"created_at": "2006/08/01", "awesome": true,
"posts": [{"id": 1, "author_id": 1, "title": "Welcome to the weblog"},
{"id": 2, author_id: 1, "title": "So I was thinking"}]}
2nd level and higher order associations work as well:
konata.to_json(:include => { :posts => {
:include => { :comments => {
:only => :body } },
:only => :title } })
# => {"id": 1, "name": "Konata Izumi", "age": 16,
"created_at": "2006/08/01", "awesome": true,
"posts": [{"comments": [{"body": "1st post!"}, {"body": "Second!"}],
"title": "Welcome to the weblog"},
{"comments": [{"body": "Don't think too hard"}],
"title": "So I was thinking"}]}
Parameters
-
optionsopt = {}
Source
# File activerecord/lib/active_record/serializers/json_serializer.rb, line 55
def to_json(options = {})
if include_root_in_json
"{#{self.class.json_class_name}: #{JsonSerializer.new(self, options).to_s}}"
else
JsonSerializer.new(self, options).to_s
end
end
Defined in activerecord/lib/active_record/serializers/json_serializer.rb line 55
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::Serialization