我正在使用ROXML来读取并自动构建格式正确的XML的Ruby对象。
我有嵌套资源,所以在我的XML中,例如:
<blog ... >
<post ... />
<post ... />
<post ... />
</blog>
问题在于:
blog
对象,我可以在其上调用blog.posts.count
然后按预期返回3
- 这是有用的。blog.first
时,我会收到ROXML定义的post
集合中的第一个posts
- 这是有效的。post
对象并调用post.blog
来获取其父blog
个对象。如何在post
对象上定义此关系?我只是定义一个方法,并提供xml_accessor
声明吗?这似乎不对(并且没有用),因为xml_accessor
方法意味着直接从XML提取属性,并且在XML的post
部分内,将没有{{1 XML - 它是另一种方式。那么,如何从通过ROXML构建的对象中访问子对象的父对象?
答案 0 :(得分:1)
我或多或少是ROXML的当前作者/维护者(http://github.com/Empact)。
首先我想知道,你提交了这个:https://github.com/Empact/roxml/issues/36这是追踪这个问题的当前问题。
在任何情况下,答案是图书馆当前没有建立这种关系,如果你想到它,我们不会那么疯狂,毕竟ActiveRecord没有建立一个双方的没有对称的数据关系has_many / belongs_to声明。
但是ROXML可以!在所有子对象被解析为更高级别对象下的子对象之后,我们可以向下传播父对象信息以建立连接。
我目前没有时间做这项工作,但如果您想加入图书馆,我很乐意审核并将其纳入图书馆。
您还可以查看Representable:https://github.com/apotonick/representable它是部分来自ROXML代码库创建的,并且更加积极地维护。不确定它是否具有此功能。