Rails 5.2 отправляет check_box через ajax - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть простая модель 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! , все работает. Но я должен нажать кнопку «Отправить», чего я хочу избежать.

...