Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 Rails 3.0中的活动资源,具有非标准ID的嵌套资源_Ruby On Rails 3_Activeresource - Fatal编程技术网

Ruby on rails 3 Rails 3.0中的活动资源,具有非标准ID的嵌套资源

Ruby on rails 3 Rails 3.0中的活动资源,具有非标准ID的嵌套资源,ruby-on-rails-3,activeresource,Ruby On Rails 3,Activeresource,我有一个rails应用程序,需要引用另一个rails应用程序来填充它的一些模型,我正在使用活动资源来完成这项工作 当我需要走这样的路线时: /channels.xml /channels/1/programs.xml 没有任何问题,我可以使用自动映射很好 但是,我还需要能够处理以下路线: /channels.xml /channels/1/programs.xml 这就是我被困的地方 看看这些文档,看起来这可能算是一个定制的restful路径,在这种情况下,我会被困在做一件看起来非常混乱

我有一个rails应用程序,需要引用另一个rails应用程序来填充它的一些模型,我正在使用活动资源来完成这项工作

当我需要走这样的路线时:

/channels.xml
/channels/1/programs.xml
没有任何问题,我可以使用自动映射很好

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

/channels.xml
/channels/1/programs.xml
这就是我被困的地方

看看这些文档,看起来这可能算是一个定制的restful路径,在这种情况下,我会被困在做一件看起来非常混乱的事情:

Channel.first.get(:programs)
这不仅看起来很糟糕,而且实际上有数据的rails应用程序也不起作用

/channels//programs.xml
里面没有身份证。你知道,这很酷,因为事情变得更加复杂,另一个rails对象中的通道模型是从一个没有考虑rails的遗留数据库构建的,因此没有id列。相反,它使用station_id

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

编辑:以防万一有人建议,我已经尝试了Channel.first.get:programs,:id=>1,但这只会让我得到一条如下的路线:

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


也许我将不得不放弃restful路由,只需从那里提取id…但我真的不想…

研究称为前缀选项的东西

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