我正在尝试使用 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
也许我真的太盲目了,但我被困住了......任何想法都受到热烈欢迎。
谢谢
马特