我在学习如何在我的应用程序周围发送数据时遇到一些问题。现在我无法弄清楚如何让一些JSON数据返回到创建新数据库条目的Sintra POST路由。我没有真正收到任何错误消息,我的应用程序在屏幕上显示数据,但它从不写入数据库。使用ajax将json数据发布到sinatra路由并发送到数据库
这是我最新的尝试失败
有了一些提醒我已经能够确定的是,JSON我送看起来像这样
{"description":"test","created_at":"2014-09-25T10:31:29-04:00","updated_at":"2014-09-25T10:31:29-04:00"}
JavaScript代码
t.saveTask = function(task) {
var t = ko.toJSON(task);
$.ajax({
type: "POST",
url: "/tasks/new",
dataType: 'json',
contentType: "application/json",
data:JSON.stringify(t)
}).done(function(){
alert (t);
});
辛特拉代码
post "/tasks/new", :provides => :json do
begin
params = JSON.parse(request.env["rack.input"].read)
@task = Task.new
@task.complete = false
@task.description = params[:description]
@task.created_at = DateTime.now
@task.updated_at = DateTime.now
@task.save
rescue Exception => e
return e.message
end
end
'但它从来没有写入数据库.'因为你永远不会保存对象,所以在'rescue'之前尝试保存'@ task.save'。 – 2014-09-25 14:56:20
我刚刚添加@ task.save并更新了上述示例,但它仍未保存到数据库。即使在我的服务器重新启动后。 – jayscott 2014-09-25 18:07:19