Rails RestKit POST请求缺少json的根类

Dav*_*Liu 5 xcode ruby-on-rails objective-c restkit

嗨伙计们,我有这个我修复过的问题,但我知道修复是没有做正确的方法.有人能指出我正确的方向进行正确的修复吗?

所以基本上我用iOS sim创建一个对象,RESTkit postObject我收到了这条消息

Processing PeopleController#create (for 127.0.0.1 at 2012-01-13 03:55:46) [POST]
  Parameters: {"name"=>"data"}

Person Create (0.4ms)   INSERT INTO "people" ("created_at", "updated_at", "name")
VALUES('2012-01-13 11:55:46', '2012-01-13 11:55:46', NULL)
Completed in 27ms (View: 1, DB: 0) | 200 OK 
Run Code Online (Sandbox Code Playgroud)

一位优秀的先生们指出,我的创建函数中的类只接受了一个我忽略的人类.

def create
@person = Person.new(params[:person]) , thus looking for {"person" => {"name"=>"data"}}
Run Code Online (Sandbox Code Playgroud)

我这样做了

@person =Person.new(name:=>params[:name])因为我现在只发送{"name"=>"data"} 它创建好,我可以看到我的ios sim上的条目,但我知道这不是正确的方式应该{"person" => {"name"=>"data"}}发送到原始功能的正确方法.加上我的错误找不到keyPath的对象映射:"有什么想法吗?提前thnx!这是我的xcode

@interface Data: NSObject{// imaginary over arching class
   Person * person;
   NSArray *dog;
@property (nonatomic, retain) Person * person;
@property (nonatomic, retain) NSArray * dog;

@interface Data : NSObject {
Person *person;
NSArray *dogs;
}
@property (nonatomic ,retain) Person *person;
@property (nonatomic ,retain) NSArray *dogs;
@end

@interface Person : NSObject {

NSString *name;
NSNumber *personId;
NSDate   *updatedAt;
NSDate   *createdAt;

}

@property (nonatomic , retain) NSDate * createdAt;
@property (nonatomic , retain) NSDate * updatedAt;
@property (nonatomic , retain) NSNumber  *personId;
@property (nonatomic , retain) NSString *name;
@end

RKObjectMapping* userMapping = [RKObjectMapping mappingForClass:[Person class]];

[userMapping mapKeyPath:@"created_at" toAttribute:@"createdAt"];
[userMapping mapKeyPath:@"updated_at" toAttribute:@"updatedAt"];
[userMapping mapKeyPath:@"name" toAttribute:@"name"]; 
[userMapping mapKeyPath:@"id" toAttribute:@"personId"];

RKObjectMapping* dogMapping = [RKObjectMapping mappingForClass:[Dog class]];
[dogMapping mapKeyPath:@"created_at" toAttribute:@"createdAt"]; 
[dogMapping mapKeyPath:@"person_id" toAttribute:@"spersonId"]; 
[dogMapping mapKeyPath:@"name" toAttribute:@"name"]; 
[dogMapping mapKeyPath:@"updated_at" toAttribute:@"updatedAt"]; 
[dogMapping mapKeyPath:@"id" toAttribute:@"dogId"]; 

RKObjectMapping *dataMapping = [RKObjectMapping mappingForClass:[Data class]]; 
[dataMapping mapKeyPath:@"dog" toAttribute:@"dogs"]; 
[dataMapping mapKeyPath:@"person" toRelationship:@"person" withMapping:userMapping]; 
[[RKObjectManager sharedManager].mappingProvider addObjectMapping:dataMapping]; 

[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/people"       
objectMapping:dataMapping delegate:self]; 

RKObjectRouter * router = [RKObjectManager sharedManager].router;
[router routeClass: [Person class] toResourcePath:@"/people/:personId"];
[router routeClass: [Person class] toResourcePath:@"/people"          
forMethod:RKRequestMethodPOST];

RKObjectMapping *personSerializationMapping = [RKObjectMapping mappingForClass:
[NSMutableDictionary class]];
[personSerializationMapping attribute:@"name", nil];
[RKObjectManager sharedManager].mappingProvider 
setSerializationMapping:personalSerializationMapping forClass: [Person class]];

Person *dave = [[Person alloc]init];
dave.name = @"Dave";
[[RKObjectManager sharedManager] postObject:dave delegate:self];
}
Run Code Online (Sandbox Code Playgroud)