JSON incluye syntax

Mi configuración: Rails 2.3.10, Ruby 1.8.7

Tengo un conjunto bastante complicado de relaciones entre varios modelos.

class A has_many :classB has_many :classD end class B belongs_to :classA has_many :classC end class C belongs_to :classB belongs_to :classE end class D belongs_to :classA belongs_to :classE end class E has_many :classD has_many :classC end 

Tengo un problema con la syntax JSON para obtener toda la información relacionada que comienza con classA. Esto es lo que tengo trabajando hasta ahora.

 classA.to_json(:include => {:classB => {:include => [:classC, :classE]}}) 

No puedo hacer que la syntax funcione para incluir también los registros classD y classE relacionados.

ACTUALIZACIÓN En realidad, algo como esto podría funcionar, excepto que no puedo mezclar hashes y matrices

 classA.to_json(:include => [ :classB => { :include => { :classC => { :include => :classE } } }, :classD, :classE ]) 

Tenga en cuenta que no usé singular / plural en mi código de ejemplo anterior, pero en mi código real, lo soy. Cualquier información será muy apreciada.

Gracias bob

Esto debería funcionar:

 classA.to_json(:include => { :classB => {:include => {:classC => {:include => :classE}}}, :classD => {}, :classE => {}, }) 

No sé si desea que se incluya classE a través de la clase C y classD, pero esto debería funcionar:

 classA.to_json(:include => { :classB => { :include => { :classC => { :include => :classE } } }, :classD => { :include => :classE } }) 

EDITAR:

 class A has_many :bs has_many :ds end class B belongs_to :a has_many :cs end class C belongs_to :b belongs_to :e end class D belongs_to :a belongs_to :e end class E has_many :ds has_many :cs end @class_a = A.first @class_a.to_json(:include => { :bs => { :include => { :cs => { :include => :e } } }, :ds => { :include => :e } }) 

Prueba esto, solo deberías necesitar uno :include => :

 classA.to_json(:include => {:classB => [:classC, { :classE => :classD }] })