jquery - Rails Jquery - 复选框更改 Ajax 调用

标签 jquery ruby-on-rails ajax checkbox

我必须显示“待办事项” list (西类牙语)。

Checklist example

这个想法是,一旦选中与某个项目关联的复选框,标签的文本就会获得一条线(text-decoration:line-through),并且数据库中的属性(名为: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 %>

javascript 中:

$(function(){
    $(".activity_status").live("change", function(act_id) {
        $.ajax({
            url: "/controller/done",
            beforeSend: function() { alert("Hi") },
            data: "id="+act_id, 
            success: function() { alert('Bye') }
        });
    });
});

在我的 Controller 中:

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

我还设置了此操作的路线:获取“controller/done”

问题:

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

我做错了什么有什么想法吗?你会怎么做?

提前致谢!

最佳答案

路由可能存在一些问题,如果 Controller 是资源会更好,将完成的操作放在集合中:

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

您还应该尝试安装 Firebug并注意您的 ajax 调用,也许服务器只是没有以正确的方式应答。

关于jquery - Rails Jquery - 复选框更改 Ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7936764/

相关文章:

ruby-on-rails - ruby-1.9.3-p448/gems/acts_as_paranoid-0.3.1/lib/acts_as_paranoid.rb :42:in `alias_method'

javascript - 当我更正无效的输入并尝试再次提交时,代码将不会执行

ruby-on-rails - Rails 4 - Live,即使在刷新后连接也会继续

javascript - XML .attributes 不起作用

php - 无法使用ajax将变量发送到php

jQuery - 不区分大小写的标签选择器

javascript - javascript字符串自动换行,匹配另一个字符串

javascript - 在CSS中并排对齐元素

Jquery - 多个选择器

ruby-on-rails - has_many_polymorphs 中的冲突关联