Rails Jquery-复选框更改Ajax调用

Rails Jquery-复选框更改Ajax调用,jquery,ruby-on-rails,ajax,checkbox,Jquery,Ruby On Rails,Ajax,Checkbox,我必须展示“要做的事情”清单(西班牙语) 其思想是,一旦选中了与项目关联的复选框,标签的文本将获得一行通过(文本装饰:行通过),并且数据库中的属性(名为:done)将得到更新 为此,我有以下几点: 在我的视图中: <% @user_account.activities.each do |act| %> <div class="checklist_check"> <%= check_box_tag 'activity_status', act.id

我必须展示“要做的事情”清单(西班牙语)

其思想是,一旦选中了与项目关联的复选框,标签的文本将获得一行通过(文本装饰:行通过),并且数据库中的属性(名为:done)将得到更新

为此,我有以下几点:

在我的视图中

<% @user_account.activities.each do |act| %>
   <div class="checklist_check">
      <%= check_box_tag 'activity_status', act.id, act.done, :class => 'activity_status' %> 
      <%= act.name %>
   </div>
<% end %>
$(function(){
    $(".activity_status").live("change", function(act_id) {
        $.ajax({
            url: "/controller/done",
            beforeSend: function() { alert("Hi") },
            data: "id="+act_id, 
            success: function() { alert('Bye') }
        });
    });
});
def done

    @activity = Activity.find params[:id]

    if @activity.done
        @activity.update_attributes :done_by_date, false
    else 
        @activity.update_attributes :done_by_date, true
    end    
end
在我的控制器中

<% @user_account.activities.each do |act| %>
   <div class="checklist_check">
      <%= check_box_tag 'activity_status', act.id, act.done, :class => 'activity_status' %> 
      <%= act.name %>
   </div>
<% end %>
$(function(){
    $(".activity_status").live("change", function(act_id) {
        $.ajax({
            url: "/controller/done",
            beforeSend: function() { alert("Hi") },
            data: "id="+act_id, 
            success: function() { alert('Bye') }
        });
    });
});
def done

    @activity = Activity.find params[:id]

    if @activity.done
        @activity.update_attributes :done_by_date, false
    else 
        @activity.update_attributes :done_by_date, true
    end    
end
此外,我还设置了此操作的路径:获取“控制器/完成”

问题:

一旦我点击复选框,函数就会被调用,并且警报(“hi”)就会执行,但是success函数不会,并且“done”属性永远不会在数据库中更新

你知道我做错了什么吗?你会怎么做


提前谢谢

路由可能存在一些问题,如果控制器是资源,则更好,将您的已完成操作放入集合中:

resources :controller do
  collection do
    post 'done' (or get 'done')
  end
end

此外,您还应该尝试安装并观察ajax调用,可能服务器的响应方式不正确。

感谢您的回答Sandvich。我试过你告诉我的,但没有任何区别。。。也许我写url的方式有问题。。。更多的想法?谢谢试试这个:你找到答案了吗?我也有同样的问题?