我有以下場景: 我有一個Rails網站門戶(Rails 3.1),我使用RestKit 0.9.3(最新版本)連接門戶網站iOS設備。 我想將數據結構從服務器映射到iOS設備上的核心數據模型。該模型設計如下:Rails 3.1&RestKit 0.9.3 - 映射引用
類
- 用戶
- 角色
- 後
- 評論
關係
- 用戶具有零個或一個角色/角色可以有多個用戶
- 用戶有多個帖子/ A郵政有一個用戶
- 甲張貼有多個評論/ A註釋具有一個郵政
問題是,RestKit中關係的默認映射會導致巨大的消息和冗餘傳輸,因爲當我發送/接收角色時,所有用戶都將被傳輸,如果我發送/接收用戶,角色是添加到每個用戶。用戶,帖子和評論也會發生同樣的情況。 就我所能想到的而言,它只是提供很多數據和最佳解決方案,只是發送引用的ID並傳輸每種類型的ID。 當我通過將角色的ID映射到用戶的字段「role_id」將數據從iOS設備發送到服務器時,這非常適用,因爲Rails確實明白如何處理該問題。所以這些關係並不像關係那樣映射,而是像ID域那樣映射。但是,當我從服務器接收用戶時,如果設備上不存在用戶,我會收到一個錯誤,因爲RestKit不知道如何處理映射,因爲沒有Role對象鏈接到User對象。
因此,我研究並發現可以映射關係並使用主鍵的映射,以便RestKit只會發送角色的主鍵。但是現在Rails不知道如何處理它。 它看起來是這樣的:
{ 「ID」:1, 「UID」: 「my_user_name」, 「PWD」: 「MY_PASSWORD」, 「角色」:{ 「ID」:0 }}
但Rails的期待類似的東西:
{ 「ID」:1, 「UID」: 「my_user_name」; 「PWD」:「MY_PASSWORD」, 「ROLE_ID」:0 }
這就是我目前的狀態,我真的不知道如何解決這個誤解。
我會非常感謝任何幫助!