Rails 3.0中的Active Resource,具有非标准ID的嵌套资源

时间:2011-02-15 20:59:05

标签: ruby-on-rails-3 activeresource

我有一个rails应用程序,需要引用另一个rails应用程序来填充其中的一些模型,并使用Active Resource来执行此操作。

当我需要点击一条路线时:

/channels.xml

完全没有问题,我可以使用自动映射......

但是,我还需要能够处理如下路线:

/channels/1/programs.xml

这就是我被困住的地方。

只看文档,它看起来像这可能算作一个自定义的宁静路线,在这种情况下我会被困在看起来非常凌乱的样子:

Channel.first.get(:programs)

这不仅看起来很糟糕,也不起作用(实际上有数据的rails应用程序

/channels//programs.xml

没有身份证。你知道,这很酷,因为事情变得更加复杂,其他rails对象中的“Channel”模型是从遗留数据库构建的,它没有考虑到rails(因此没有“id”列)。相反,它使用“station_id”。

所以,如果我必须使用那个凌乱的Channel.get方法,我怎样才能确保它正确设置id?我可以从ActiveResource应用程序执行此操作,还是需要在源rails应用程序中更改某些内容?

编辑:万一有人建议,我已经尝试过Channel.first.get(:programs,:id => 1),但这只是给我一条路线:

/channels//programs.xml?id=1。

也许我不得不放弃宁静的路线,只是从那里拉出身份......但我真的不想......

1 个答案:

答案 0 :(得分:0)

查看名为prefix_options的内容

self.prefix_options[:channel_id] = <some channel_id>