Jquery 不确定ajax方法是否将rails表单保存到数据库中,如何进行双重检查?
我有两个问题。首先,我试图用jquery(ajax方法)提交一个rails表单,但我不确定它是否真的保存了数据,所以有人能再次检查我的代码是否正确吗?其次,根据我的控制器,我如何显示我刚刚保存的数据?我使用的是rails 3.1、Sqlite 3。提前谢谢。 这是我的密码 形式 控制器Jquery 不确定ajax方法是否将rails表单保存到数据库中,如何进行双重检查?,jquery,ruby-on-rails,Jquery,Ruby On Rails,我有两个问题。首先,我试图用jquery(ajax方法)提交一个rails表单,但我不确定它是否真的保存了数据,所以有人能再次检查我的代码是否正确吗?其次,根据我的控制器,我如何显示我刚刚保存的数据?我使用的是rails 3.1、Sqlite 3。提前谢谢。 这是我的密码 形式 控制器 class SchoolController < ApplicationController respond_to :json def create @school = current
class SchoolController < ApplicationController
respond_to :json
def create
@school = current_user.schools.build(params[:school].merge(:user => current_user))
@school = current_user.school.build(params[:school].merge(:user => current_user))
if @school.save
respond_with @school
else
respond_with @school.errors, :status => :unprocessable_entity
end
end
end
class-school-controller当前用户))
@school=当前用户。school.build(参数[:school]。合并(:user=>当前用户))
如果@school.save
用@school回复你
其他的
回复@school.errors,:status=>:unprocessable\u实体
结束
结束
结束
虽然我还没有深入阅读您的代码,但要回答是否要仔细检查已保存的内容的问题,您可以阅读控制台输出或打开数据库控制台
打开数据库控制台:
在线命令行类型
rails dbconsole
您应该被引导到sqlite中。以下是一些有用的命令:
.schema
select * from tablename;
希望这有帮助 您还可以使用
rails控制台
或rails控制台--sandbox
进行此操作。沙盒意味着您可以在控制台中使用数据库,它将保持不变。只需打开控制台并键入
School.last
在你提交表格之后。您应该看到刚刚在表单中输入的值的散列
在查看服务器日志后,我找到了解决您问题的方法。对于ajax请求,您使用的是GET方法而不是POST方法。另外,您没有$(document).ready(function(){})
anywhere,这样您的javascript代码就永远不会被触发
将application.js代码更改为:
$(document).ready(function(){
$(".savebutton").click(function() {
$('form').submit(function() {
var formToSubmit = $(this).serialize();
$.ajax({
type: "POST",
url: $(this).attr('action'),
data: formToSubmit,
dataType: "JSON"
});
return false;
});
});
});
请记住,服务器日志是调试ajax的朋友,这次它告诉您使用了错误的方法(GET)。现在我确定它没有保存数据,有什么问题?
School.last
$(document).ready(function(){
$(".savebutton").click(function() {
$('form').submit(function() {
var formToSubmit = $(this).serialize();
$.ajax({
type: "POST",
url: $(this).attr('action'),
data: formToSubmit,
dataType: "JSON"
});
return false;
});
});
});