我试图与RestKit建立多对多关系。
假设我们有2个实体:
用户,由/user/:login_name
返回:
{
id: 1234,
name: 'Joe Bloggs',
...
}
和群组,由/user/:login_name/groups
返回:
[
{
id: 2345,
name: 'Diggers',
...
},
{ id: 2346,
name: 'Fillers',
...
},
...
]
每个用户可以属于多个组,每个组可以有多个用户。
我的核心数据模型反映了API返回的数据以及User.groups
和Group.users
关系。
问题是API没有返回外键:既没有User.groups
也没有Group.users
集合。那么,据我所知,在这种情况下我不能使用RKConnectionDescription
?
看起来[RKRoute routeWithRelationshipName:objectClass:pathPattern:method:]
可能已被使用,但我没有使用对象映射,看起来路由无法与实体映射一起使用。
我在这里错过了什么吗?
答案 0 :(得分:0)
您可以使用RKConnectionDescription
,但您需要谨慎行事......
你应该使用路线。重要的部分是让RestKit在路由元数据中收集:login_name
,然后您可以在映射中使用它。
这意味着您需要在请求组之前请求用户,以便DB中有一些内容可供查找。
您还需要将RestKit设置为使用RKAssignmentPolicyUnion
,以便建立关系而不是替换它们。
有关路由和元数据的更多详细信息,请参阅this answer。有关RKAssignmentPolicyUnion
详细信息,请参阅this answer。