我的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」,並且日誌指向上面的代碼行。
任何人都可以幫我找出爲什麼會發生這種情況嗎?
您在rails3中使用habtm?你爲什麼不使用'has_many:through'? – 2011-04-07 21:41:58
沒有其他模型鏈接數據源和參數。你會如何建議使用has_many:through? – codinguser 2011-04-07 21:53:26
對不起 - 我的印象是habtm被棄用 - 但事實並非如此。你的關係肯定可以實現爲:through,但如果你不需要訪問連接上的任何數據,那就沒有意義了。 – 2011-04-08 14:32:01