Jquery 不确定ajax方法是否将rails表单保存到数据库中,如何进行双重检查?

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

我有两个问题。首先,我试图用jquery(ajax方法)提交一个rails表单,但我不确定它是否真的保存了数据,所以有人能再次检查我的代码是否正确吗?其次,根据我的控制器,我如何显示我刚刚保存的数据?我使用的是rails 3.1、Sqlite 3。提前谢谢。 这是我的密码

形式

控制器

   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; 
   });
  });
});