2016-11-21 2 views
0

У меня есть форма рельсов с флажками. То, что я пытаюсь сделать, - это когда пользователь нажимает флажок, приложение удаляет эту запись из базы данных. Я не могу понять, как реагировать на приложение, когда пользователь проверяет флажок (аналогичное действие на нажатие кнопки отправки). Что я должен включить в свой html, поэтому, когда пользователь нажмет на флажок, приложение что-то делает?Rails checkbox создать действие отправки

Вот мой код

<% @items.each do |item|%> 
    <%if item.email == @user.email%> 
     <%= form_for @item do |f| %> 
      <%= f.check_box :to_do %> 
      <%= f.label item.to_do %><br /> 
     <% end %> 
    <%end%> 
<%end%> 

Я переборе пунктов, и если есть совпадение между item.email и электронной почты пользователя распечатать деталь с флажком рядом с ним. При необходимости я могу добавить больше кода. Есть ли вызов Ajax, который я могу сделать?

+0

Техническая реализация в сторону, у меня есть некоторые оговорки об идее удаления контента в действии флажка. Использование флажков и кнопка отправки для удаления являются обычными, поскольку он обеспечивает шаг подтверждения (часто за которым следует другая кнопка подтверждения). Вы хотите, чтобы пользователи могли случайно удалять контент с помощью флажка, который обычно включает возможность включения и выключения без каких-либо деструктивных действий? – RedBassett

ответ

0

Да. Вы можете написать вызов AJAX.

<script> 
    $('#checkbox_id').change(function(){ 
     $.get('controller/action?item_id='+$(this).val(), function(data, status){ 
      /* Call back */ 
     }) 
    }) 
</script> 
2

Как сказал RedBassett, я не 100% уверен, что я согласен со стратегией, имеющие флажок немедленно удалить запись. Однако если эта форма уже создана для удаления вещей, вы можете сделать это следующим образом:

Вам даже не нужен звонок AJAX. Просто обычный JQuery. Добавьте класс в форме, а также с флажком

<%= form_for @item do |f|, :class => "form-class" %> 

<%= f.check_box :to_do, :class => "checkbox-class" %> 

и в файле JS, использовать Jquery сказать форму, чтобы представить, когда пользователь нажимает на флажок.

$(".checkbox-class").on("click", function(){ 
    $(".form-class").submit(); 
}); 

Примечание: это будет на самом деле отправить форму, то это будет, как если бы вы проверили коробку, а затем нажать кнопку «Отправить», так что вам нужно будет обрабатывать данные формы в контроллере, если вы хотите чтобы остаться на той же странице, что вам нужно будет перенаправить обратно на ту же страницу, как это действие вызовет перезагрузку/переадресовать

0

Использование borbesaur ответ, но помните, что вы можете просто добавить опцию remote: true в форму так Rails можете отправить форму с помощью ajax и избежать повторной загрузки всей страницы. :)

Смежные вопросы