2012-01-24 25 views
0

我使用ROXML來讀取並自動構建格式正確的XML格式的Ruby對象。ROXML和訪問關係中的父對象

我有嵌套的資源,所以我的XML內我有,例如:

<blog ... > 
    <post ... /> 
    <post ... /> 
    <post ... /> 
</blog> 

這裏的問題:

  1. 當我讀到這個網址,我拿回blog對象,我可以撥打電話blog.posts.count,然後按照預期返回3 - 這很奏效。
  2. 當我打電話給blog.first時,我收回posts集合中的第一個post,正如ROXML所定義的那樣 - 正在工作。
  3. 但是,不起作用的是調用父對象。我希望能夠獲取給定的post對象並致電post.blog以獲取其父對象blog對象。我如何在post對象上定義這種關係?我只是定義一個方法,並提供一個xml_accessor聲明?這看起來不正確(並且沒有奏效),因爲xml_accessor方法是爲了直接從XML中提取屬性,並且在XML的post部分中,不會有blog XML - 這是相反的方法。

那麼,如何從通過ROXML構造的對象訪問子對象中的父對象?

回答

1

我或多或少是ROXML(http://github.com/Empact)的當前作者/維護者。

首先我想知道,你提交了這個:https://github.com/Empact/roxml/issues/36這將是當前的問題跟蹤這個問題。

在任何情況下,答案是圖書館目前沒有建立這種關係,如果你認爲它,我們沒有那麼瘋狂,畢竟ActiveRecord沒有建立雙方沒有對稱has_many/belongs_to聲明的db關係。

但ROXML可以!在所有的子對象被解析爲更高級別對象下的子對象後,我們可以傳播父項信息以建立連接。

我目前沒有時間做這項工作,但如果你想加入圖書館,我很樂意去審覈並將其納入圖書館。

您也可以看看可代表性:https://github.com/apotonick/representable它部分由ROXML代碼庫創建,並且更加主動地維護。不確定它是否具有此功能。

+0

嗯,感謝您的鏈接。我並不是提交這個案子的人,但這絕對是我正在談論的。我會看看它。感謝官方的迴應,以及與替代品的聯繫。 – jefflunt