Rails Jquery-复选框更改Ajax调用
我必须展示“要做的事情”清单(西班牙语) 其思想是,一旦选中了与项目关联的复选框,标签的文本将获得一行通过(文本装饰:行通过),并且数据库中的属性(名为:done)将得到更新 为此,我有以下几点: 在我的视图中: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
<% @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的方式有问题。。。更多的想法?谢谢试试这个:你找到答案了吗?我也有同样的问题?