我在學習如何在我的應用程序周圍發送數據時遇到一些問題。現在我無法弄清楚如何讓一些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