En espérant obtenir une petite poussée dans la bonne direction. J'ai du mal à obtenir un objet imbriqué à sérialiser correctement lorsque je POST à mon application rails en utilisant RestKit. Je les applications suivantes:Sérialisation d'un objet imbriqué lors de la publication de l'application iOS vers Rails
RKObjectMapping *cartSerializationMapping = [RKObjectMapping mappingForClass:[TOCart class]];
[cartSerializationMapping mapKeyPath:@"place.placeID" toAttribute:@"order[external_id]"];
//map the line items serialization mapping
RKObjectMapping *lineItemSerializationMapping = [RKObjectMapping mappingForClass:[TOLineItem class]];
[lineItemSerializationMapping mapKeyPath:@"itemID" toAttribute:@"itemID"];
[lineItemSerializationMapping mapKeyPath:@"name" toAttribute:@"name"];
[[RKObjectManager sharedManager].mappingProvider setSerializationMapping:lineItemSerializationMapping forClass:[TOLineItem class]];
//add relationship bw line items to TOLineItem
[cartSerializationMapping mapKeyPath:@"line_items" toRelationship:@"order[line_items]" withMapping:lineItemSerializationMapping serialize:YES];
[[RKObjectManager sharedManager].mappingProvider setSerializationMapping:cartSerializationMapping forClass:[TOCart class]];
Après avoir enregistré sur le serveur, fonctionne sérialisation pour l'objet parent, mais pas pour l'objet Line_Item imbriqué:
Started POST "/orders" for 127.0.0.1 at 2011-11-16 04:05:58 -0800
Processing by OrdersController#create as JSON
Parameters: {"order"=>{"line_items"=>["<TOLineItem: 0x8aafdb0>"], "external_id"=>"4ae8a535f964a52024b121e3"}}
Je veux que le Line_Item sérialiser à itemID et nom etc ...
Ai-je mal défini mes mappages?
Merci!
MISE À JOUR:
Ma classe TOCart:
#import <Foundation/Foundation.h>
@class TOPlace;
@interface TOCart : NSObject
{
NSNumber *cartID;
TOPlace *place; //post to external id
NSString *state;
NSMutableArray *line_items;
}
@property (nonatomic, retain) NSNumber *cartID;
@property (nonatomic, retain) TOPlace *place;
@property (nonatomic, retain) NSString *state;
@property (nonatomic, retain) NSMutableArray *line_items;
@end
pouvez-vous poster votre classe TOCart? (ivars ou définitions de propriétés) – mja
Mise à jour avec ma classe de panier. Thx – chourobin
Je définis généralement ma correspondance pour mapper de l'API aux entités, puis créer un mappage de sérialisation à l'aide du sélecteur inverseMapping. Jetez un coup d'oeil à mon autre réponse car cela peut faire la lumière - http://stackoverflow.com/questions/7726437/restkit-how-does-one-post-an-array-of-objects/7726829#7726829 – mja