如何从 Restkit + iOS 发布到 Rails

Posted

技术标签:

【中文标题】如何从 Restkit + iOS 发布到 Rails【英文标题】:How to POST from Restkit + iOS to Rails 【发布时间】:2011-05-10 22:45:37 【问题描述】:

我的 Rails 应用有一个带有“name”属性的 Post 模型。我正在尝试使用 RestKit 从 ios 创建一个新帖子。这是iOS代码。

NSDictionary* params = [NSDictionary dictionaryWithObject:@"amazingname" forKey:@"name"];
[[RKClient sharedClient] post:@"/posts" params:params delegate:self];

这是在同一台机器上运行的服务器日志

    Started POST "/posts" for 127.0.0.1 at Tue May 10 15:39:14 -0700 2011
  Processing by PostsController#create as JSON
  Parameters: "name"=>"amazingname"
MONGODB blog_development['posts'].insert(["_id"=>BSON::ObjectId('4dc9be92be2eec614a000002')])
Completed 406 Not Acceptable in 4ms

如您所见,服务器收到请求,但名称并没有保存到数据库中。创建了一个无名的帖子。我的 iOS 代码有什么问题?

【问题讨论】:

【参考方案1】:

当我将 forKey:@"name" 切换为 forKey:@"post[name]" 时它可以工作

【讨论】:

【参考方案2】:

或者你可以这样做

NSDictionary* attributes = [NSDictionary dictionaryWithObject:@"amazingname" forKey:@"name"];
NSMutableDictionary *params = 
[NSMutableDictionary dictionaryWithObject:attributes forKey:@"post"];

【讨论】:

以上是关于如何从 Restkit + iOS 发布到 Rails的主要内容,如果未能解决你的问题,请参考以下文章

从 AFNetworking 切换到 RestKit

RestKit/RKObjectMapping:从服务器加载数据后如何添加其他属性?

RestKit:你如何映射到 NSUUID?

尝试在 iOS 上使用 Restkit - XCode

RestKit:当值无效时如何拒绝整个映射

如何通过 iOS 6 中的 RESTkit 2.0 将 JSON 中的 base64 图像导入核心数据二进制文件?