У меня есть простая модель REST central_device
с логическим полем offer_made
.
Я хочу обновить свою модель с помощью флажка для атрибута offer_made
, нажав на этот флажок, я пытаюсь отправить форму через ajax, следовательно, form_with
.
Это пока код:
Просмотр
<%= form_with model: central_device do |f| %>
<%= f.check_box :offer_made %>
<% end %>
Coffeescript
ready = ->
$(document).on 'click', '.central_device_offer_made input[type=checkbox]', ->
$(this).parent('form').submit()
$(document).ready(ready)
Почему отправляет форму javascipt не через ajax запрос? Мой контроллер выглядит так:
Контроллер
def update
respond_to do |format|
if @central_device.update(central_device_params)
format.html { redirect_to @central_device, notice: 'Central device was successfully updated.' }
format.js
format.json { render :show, status: :ok, location: @central_device }
else
format.html { render :edit }
format.json { render json: @central_device.errors, status: :unprocessable_entity }
end
end
end
Проблема в , для меня это выглядит как format.html {}
. Я имею в виду после того, как submit()
redirect_to:
вызывается с notice: 'Central device was successfully updated.'
Если я использую этот код на мой взгляд
<%= form_with model: central_device do |f| %>
<%= f.check_box :offer_made %>
<%= f.submit "save" %>
<% end %>
без каких-либо javascript! , все работает. Но я должен нажать кнопку «Отправить», чего я хочу избежать.