从iOS应用程序调用Rails操作
我有一个非常简单的Rails操作,如下所示:从iOS应用程序调用Rails操作,ios,ruby-on-rails,Ios,Ruby On Rails,我有一个非常简单的Rails操作,如下所示: def create @story = Story.new(story_params) if(@story.save) render :json => {:success => 'true', :message => 'Story saved successfully!'} else render :json => {:success => 'true', :messa
def create
@story = Story.new(story_params)
if(@story.save)
render :json => {:success => 'true', :message => 'Story saved successfully!'}
else
render :json => {:success => 'true', :message => 'Error creating story'}
end
end
我使用AFNetworking从我的iPhone应用程序调用上述方法:
[self POST:@"stories/create" parameters:@{@"story[title]":story.title,@"story[abstract]":story.abstract} success:^(NSURLSessionDataTask *task, id responseObject) {
if(success) success(task,responseObject);
} failure:^(NSURLSessionDataTask *task, NSError *error) {
if(failure) failure(task,error);
}];
我得到以下信息:
"The operation couldn’t be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) UserInfo=0x8ca3500 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}
我使用Charles查看网络流量,得到以下结果:
story[abstract] Asd
story[title] asdas
这意味着什么?我怎样才能上班
更新:
我尝试了下面提到的其他方法,但仍然存在相同的问题:
[self POST:@"stories/create" parameters:@{@"story": @{
@"title": story.title,
@"abstract": story.abstract
}
}
success:^(NSURLSessionDataTask *task, id responseObject) {
NSLog(@"Success");
} failure:^(NSURLSessionDataTask *task, NSError *error) {
NSLog(@"%@",error.description);
NSLog(@"FAILED");
}];
不确定,但这对我来说似乎是错误的:
@{@“故事[标题]”:故事.标题,@“故事[摘要]”:故事.摘要
那怎么办
@{@"story": @{
@"title": story.title,
@"abstract": story.abstract
}
}
?这个问题可能有助于解释:@Jim导致问题的不是响应。而是请求。数据甚至没有到达rails操作。我尝试了你的方法,但得到了相同的错误。我更新了原始问题中的代码。