tengo algunos modelos Ares (véase más adelante) que estoy tratando de utilizar las asociaciones con (lo que parece ser totalmente indocumentado y tal vez no sea posible, pero pensé que le daría una oportunidad)rieles ActiveResource
Así que en mi lado del servicio, mi objeto ActiveRecord hará que algo así como
render :xml => @group.to_xml(:include => :customers)
(ver XML generado más adelante)
El Grupo de modelos y clientes son HABTM
En mi lado de ARes, espero que pueda ver el atributo <customers>
xml y llenar automáticamente el atributo .customers
de ese objeto de grupo, pero los métodos has_many etc. no son compatibles (al menos hasta donde puedo decir)
Así que me pregunto cómo hace ARes su reflexión sobre el XML para establecer los atributos de un objeto. En AR, por ejemplo, pude crear un def customers=(customer_array)
y configurarlo yo mismo, pero esto no parece funcionar en ARes.
Una sugerencia que encontré para una "asociación" es el justo tienen un método
def customers
Customer.find(:all, :conditions => {:group_id => self.id})
end
Pero esto tiene el inconveniente de que hace una segunda llamada de servicio para buscar aquellos clientes ... no se refresca
Me gustaría que mi modelo ActiveResource para ver que los clientes atribuyen en el XML y llenar automáticamente mi modelo. ¿¿Alguien tiene alguna experiencia con esto??
# My Services
class Customer < ActiveRecord::Base
has_and_belongs_to_many :groups
end
class Group < ActiveRecord::Base
has_and_belongs_to_many :customer
end
# My ActiveResource accessors
class Customer < ActiveResource::Base; end
class Group < ActiveResource::Base; end
# XML from /groups/:id?customers=true
<group>
<domain>some.domain.com</domain>
<id type="integer">266</id>
<name>Some Name</name>
<customers type="array">
<customer>
<active type="boolean">true</active>
<id type="integer">1</id>
<name>Some Name</name>
</customer>
<customer>
<active type="boolean" nil="true"></active>
<id type="integer">306</id>
<name>Some Other Name</name>
</customer>
</customers>
</group>