私はrestkitを使用して、作成アクションをmu ipadアプリケーションからRailsアプリケーションに投稿しています。属性のマッピングを作成します。
- (void) initCustomerMapping
{
RKObjectMapping *customerSerializationMapping = [RKObjectMapping mappingForClass:[NSMutableDictionary class]];
[customerSerializationMapping mapKeyPath:@"id" toAttribute:@"id"];
[customerSerializationMapping mapKeyPath:@"lastname" toAttribute:@"lastname"];
[customerSerializationMapping mapKeyPath:@"firstname" toAttribute:@"firstname"];
[customerSerializationMapping mapKeyPath:@"house_name" toAttribute:@"house_name"];
[customerSerializationMapping mapKeyPath:@"sci" toAttribute:@"sci"];
[customerSerializationMapping mapKeyPath:@"water_used" toAttribute:@"water_used"];
[customerSerializationMapping mapKeyPath:@"address_line_1" toAttribute:@"address_line_1"];
[customerSerializationMapping mapKeyPath:@"address_line_1" toAttribute:@"address_line_2"];
[customerSerializationMapping mapKeyPath:@"postal_code" toAttribute:@"postal_code"];
[customerSerializationMapping mapKeyPath:@"city" toAttribute:@"city"];
[[RKObjectManager sharedManager].mappingProvider setSerializationMapping:customerSerializationMapping forClass:[Customer class]];
}
そして、私はリクエストを送信します:
Customer* customer = [[Customer alloc] init];
customer.lastname = lastname.text;
customer.firstname = firstname.text;
customer.house_name = house_name.text;
customer.sci = sci.text;
customer.water_used = water_used.text;
customer.address_line_1 = address_line_1.text;
customer.address_line_2 = address_line_2.text;
customer.postal_code = postal_code.text;
customer.city = city.text;
[[RKObjectManager sharedManager] postObject:customer delegate:self];
しかし、json 送信は次のようになります。
{"water_used"=>"710", "house_name"=>"test", "address_line_1"=>"test", "city"=>"test", "sci"=>"546", "firstname"=>"test", "lastname"=>"test", "address_line_2"=>"test", "postal_code"=>"75896"}
そして、私は取得したい:
{ "customer" =>
{"water_used"=>"710", "house_name"=>"test", "address_line_1"=>"test", "city"=>"test", "sci"=>"546", "firstname"=>"test", "lastname"=>"test", "address_line_2"=>"test", "postal_code"=>"75896"}
}
どうすればそれを設定できますか? forKeyを使用しようとしましたが、失敗しました
編集
次のものも使用できます。
[[RKObjectManager sharedManager].mappingProvider registerMapping:customerSerializationMapping withRootKeyPath:@"customer"];