0

我有一个使用嵌套属性的 Rails 项目,因此在 PUT 请求期间它需要知道要删除哪些子对象。例如,这是我需要发送的请求:

{ "playlist": { "name": "Playlist Name", "playlist_artists_attributes": [ { "id": 1087, "artist_id": 1208, }, { "id": 1086, "artist_id": 1207, "_destroy": true } ], } }

我目前正在使用 RestKit 的默认对象序列化,它发送如下请求:

{ "playlist": { "name": "Playlist Name", "playlist_artists_attributes": [ { "id": 1087, "artist_id": 1208, } ], } }

如您所见,它只会发送我在编辑播放列表时想要保留的艺术家。有没有一种简单的方法来更改 RestKit 的对象序列化以支持向已删除的艺术家添加 _destroy 标志(我想不是,因为我需要保留删除艺术家信息)或者更改 Rails 应用程序如何处理该对象的 PUT 请求会更容易?

4

1 回答 1

3

假设你有能力改变playlist_artists_attributes你要去的对象的模型和对象PUT,我会在playlist_artists_attributes列表中的对象中添加一个瞬态属性,称为destroyDuringUpload. 在序列化映射中, map @"destroyDuringUpload" : @"_destroy",然后添加对象并标记要销毁的项目,您就完成了。

于 2013-06-19T16:13:15.870 回答