J'essaie de comprendre les associations imbriquées dans Rails en utilisant ActiveResource. Mon exemple est le suivant: J'ai un aéroport avec plusieurs pistes.Rails ressources imbriquées
Mon action show dans le contrôleur des aéroports contient: @airport = Airport.find (params [: id])
Quand j'appelle http://localhost/airports/2.xml je reçois ce morceau de XML:
<airport>
<code>DUS</code>
<created-at type="datetime">2009-02-12T09:39:22Z</created-at>
<id type="integer">2</id>
<name>Duesseldorf</name>
<updated-at type="datetime">2009-02-12T09:39:22Z</updated-at>
</airport>
Maintenant, J'ai changé l'action à
@airport = Airport.find(params[:id], :include => :runways)
Comment puis-je parvenir au-dessus de chargement ci-dessus URL me donne quelque chose comme:
<airport>
<code>FRA</code>
<created-at type="datetime">2009-02-12T09:39:22Z</created-at>
<id type="integer">2</id>
<name>Frankfurt</name>
<updated-at type="datetime">2009-02-12T09:39:22Z</updated-at>
<runways>
<runway>
<id>1</id>
<name>bumpy runway</name>
</runway>
</runways>
</airport>
Et en plus de cela: Si j'ai un client avec
class Airport < ActiveResource::Base
..
end
et
class Runway < ActiveResource::Base
..
end
Comment puis-je obtenir pour charger automatiquement des associations comme:
a = Airport.find(1)
puts a.runways.length
=> 1
Et (last but not least): Existe-t-il un moyen de stocker des données de la clien t comme:
a = Airport.find(1)
a.runways << Runway.find(1)
a.save
Peut-être que je suis vraiment trop aveugle, mais je suis coincé ... Toute idée est chaleureusement la bienvenue.
Merci
Matt
Avez-vous déjà trouvé la solution a.runways << Runway.find (1) de cette équation? – Sixty4Bit