as_json and self-referential associations

Hi,

I'm using the new(?) as_json methods within a rest api I am working on.

However I am not sure how you are supposed to, or whether it is designed to handle multiple variations of association inclusion.

For example I have a model using acts_as_tree, so that each instance has children and a parent:

class CatalogueCategory < ActiveRecord::Base

  acts_as_tree

  JSON_ATTRS = ['id', 'name', 'description', 'slug']

  def as_json(options=nil)     attributes.slice(*JSON_ATTRS).merge(:children => children, :ancestors => ancestors)   end

end

The ancestors reference is an array of parent, grand parent etc categories back up to the root node.

However when I call .as_json on my category of interest it tries to include the children of each ancestor category which each have ancestors... and we end up in an infinite loop.

Ideally I would like to be able to specify different treatment of the same model depending on some context. That is I would like to be able to specify that ancestor categories do not include :children or :ancestors in their attributes for the as_json call.

I think most of this as_json functionality is part of 2-3.stable post 2.3.5 but hoped someone might have some guidance.

Thanks, Andrew.