活动资​​源 - 从嵌套资源URL加载对象

时间:2013-12-04 07:13:02

标签: ruby api rest activeresource

我正在编写一个库来使用Active Resource(4.0.0)来使用API​​。 API将嵌套资源作为URL返回,而不是对象数组。

例如,当我使用Parent加载ActiveResource::Base对象(Parent.find(1)后代)时,我得到类似于以下内容的JSON响应:

"parent": {
  "username": "alex",
  "children": "http://domain.com/parents/alex/children"
}

假设我有一个名为ActiveResource::Base的另一个Children子类,如何通过请求提供的Parent实例数组来访问此Children对象的子项儿童网址?我会帮你的:

class Parent < ActiveResource::Base
  def children
    # HALP
    # (super returns the children url as a string)
  end
end

1 个答案:

答案 0 :(得分:1)

您可以为:from指定#find参数:

class Parent < ActiveResource::Base
  # ...

  def children
    Child.find(:all, from: URI(super).path)
  end
end

但是:它只允许您更改路径,而不是完整的URL。如果资源URL的主机部分可能发生更改,则还必须更改资源的site