2011-04-07 53 views
1

我的rails 3應用程序中有一個has_and_belongs_to_many關聯。我還使用新的respond_with方法爲REST API自動生成XML。如何在序列化期間包含habtm關係

HABTM關聯在DataSource和Parameter之間,連接表爲data_sources_parameters。

當我寫respond_with DataSource.all, :include => parameter,它的工作原理,我得到預期的迴應

<data-sources type="array"> 
<data-source> 
<created-at type="datetime">2011-04-05T14:05:22Z</created-at> 
<id type="integer">1</id> 
<updated-at type="datetime">2011-04-05T14:05:22Z</updated-at> 
<url>http://www.yahoo.com/weather</url> 
<parameters type="array"/> 
</data-source> 
</data-sources> 

的響應表示爲每個數據源參數將被包含在數據源。然而,這隻在沒有實際關聯存在時才起作用,即連接表爲空。

當我實際上創建了兩個數據庫條目之間的關聯時,我得到錯誤「未定義方法類型爲nil:NilClass」,並且日誌指向上面的代碼行。

任何人都可以幫我找出爲什麼會發生這種情況嗎?

+0

您在rails3中使用habtm?你爲什麼不使用'has_many:through'? – 2011-04-07 21:41:58

+0

沒有其他模型鏈接數據源和參數。你會如何建議使用has_many:through? – codinguser 2011-04-07 21:53:26

+0

對不起 - 我的印象是habtm被棄用 - 但事實並非如此。你的關係肯定可以實現爲:through,但如果你不需要訪問連接上的任何數據,那就沒有意義了。 – 2011-04-08 14:32:01

回答