检查复选框时调用不同的操作,而不是取消选中

时间:2014-09-07 12:36:54

标签: ajax ruby-on-rails-4

我想在检查复选框时调用一个控制器操作,在取消选中时调用另一个控制器操作。 也就是说,我想打电话给"见面#create"在检查和"会议#dumer"在取消选中。

这是注册表单,您可以通过复选框注册多个会议。选中此复选框后,相应的会议将添加到订单(实际上是购物车),取消选中后,相应的会议将从订单中删除。

如何根据check_box_tag的实际状态调用其他操作?

我没有专业,所以我花了足够长的时间来弄清楚我应该提供的选项(url_for),而且我不知道如何有条件地做到这一点。

请帮忙!

<% @meeting.each do |meeting| %>
 <%= check_box_tag 'checkbox', meeting.id, checked = false, :data => {:remote => true, url: url_for(controller: :order, action: :create, meeting_id: meeting), method: :post}, :class => 'checkbox' %>
<% end %>

1 个答案:

答案 0 :(得分:0)

最后,我手工编写了ajax脚本。

$( document ).ready(function() {
  $(".checkbox").click(function() {
    var chb = $(this);
    if($(this).prop('checked')){
      $.ajax({
        url: '/bookings?meeting_id='+chb.attr('value'),
        type: "post"
      });
    }
    else{
     $.ajax({
      url: '/bookings?meeting_id='+chb.attr('value')+'&cart_id='+currentcartid,
      type: "delete"
    });
   };
 });
});

一个ajax脚本就足够了。