我想在检查复选框时调用一个控制器操作,在取消选中时调用另一个控制器操作。 也就是说,我想打电话给"见面#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 %>
答案 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脚本就足够了。