ActiveResourceを使用して、Railsのネストされた関連付けに頭を悩ませようとしています。私の例は次のとおりです。私が持っているのは、滑走路がたくさんある空港です。
空港コントローラーでのショーアクションには次のものが含まれます:@airport = Airport.find(params [:id])
http://localhost/airports/2.xmlを呼び出すと、その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>
今、私はアクションをに変更しました
@airport = Airport.find(params[:id], :include => :runways)
上記のURLをロードすると、次のような結果が得られます。
<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>
そしてそれに加えて:私がクライアントを持っている場合
class Airport < ActiveResource::Base
..
end
と
class Runway < ActiveResource::Base
..
end
次のような関連付けを自動的にロードするにはどうすればよいですか。
a = Airport.find(1)
puts a.runways.length
=> 1
そして(最後になりましたが):クライアントからのデータを次のように保存する方法はありますか?
a = Airport.find(1)
a.runways << Runway.find(1)
a.save
多分私は本当に盲目すぎます、しかし私は立ち往生しています...どんな考えでも大歓迎です。
ありがとう
マット