Javascript 在Rails中实现AJAX调用复选框以更新数据库

Javascript 在Rails中实现AJAX调用复选框以更新数据库,javascript,jquery,ruby-on-rails,ajax,checkbox,Javascript,Jquery,Ruby On Rails,Ajax,Checkbox,我是新手 我试图创建一个名为“Active”的复选框,当复选框被选中/取消选中时,它将作为一个表单,并使用AJAX使用更改的属性自动更新数据库(无需提交按钮)。我在使用这里的说明:但似乎无法使其正常工作 我认为: <%= form_for @post, :remote => true do |f| %> <%= f.label :active %> <%= f.check_box :active, :class => 'submittable' %>

我是新手

我试图创建一个名为“Active”的复选框,当复选框被选中/取消选中时,它将作为一个表单,并使用AJAX使用更改的属性自动更新数据库(无需提交按钮)。我在使用这里的说明:但似乎无法使其正常工作

我认为:

<%= form_for @post, :remote => true do |f| %>
<%= f.label :active %>
<%= f.check_box :active, :class => 'submittable' %>
<% end %>
然后我在我的views/posts文件夹中创建了一个名为“archive.js.erb”的文件,代码如下:

$('.submittable').live('change', function() {
  $(this).parents('form:first').submit();
});

我试过你的代码,问题似乎出在javascript的live方法上。如果我更改为“单击”功能,它将起作用:

$(document).ready(function(){

    $('.submittable').click(function() {
        $(this).parents('form:first').submit();
    });

}); 
编辑:忘记提到这个javascript包含在app/assets/javascripts目录中。这是因为javascript必须加载到document.ready上,jQueryAjax才能达到您想要的效果


在控制器上有arquive操作的情况下,arquive.js.erb文件必须存在,其中的javascript代码将稍后执行。这不是你的情况

您好,谢谢您的回复。你的意思是我必须把这段代码放到apps/assets/javascripts/application.js文件中吗?即使我这样做了,它对我来说仍然有效。你是否在ready函数中添加了js?也许试着在javascripts目录下用代码创建一个新的js文件。我需要在任何地方调用新的js文件吗?哦,对不起!我现在正在检查,它似乎有时只起作用,但它确实部分起作用。我可以看看我能解决什么样的错误。谢谢你的帮助!
$(document).ready(function(){

    $('.submittable').click(function() {
        $(this).parents('form:first').submit();
    });

});