【发布时间】:2014-09-26 02:44:55
【问题描述】:
我在学习 JavaScript 如何围绕我的应用程序发送数据时遇到了一些问题。现在我想不通的是如何将一些 JSON 数据返回到我的 Sintra POST 路由,该路由创建一个新的数据库条目。我并没有真正收到任何错误消息,我的应用程序在屏幕上显示数据,但它从不写入数据库。
这是我最近一次失败的尝试
通过一些警报,我已经能够确定我发送的 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
【问题讨论】:
-
but it never writes to the database.因为您从不保存对象,请尝试在rescue之前保存它@task.save。 -
我刚刚添加了@task.save 并更新了上面的示例,它仍然没有保存到数据库中。即使在我的服务器重新启动后。
标签: javascript ruby ajax json sinatra