如何添加_destroy标志到RestKit PUT请求时使用Rails nested_attributes



我有一个使用嵌套属性的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请求?

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

最新更新