Мои формы отправляются через remote: true
в Chrome и Firefox без нареканий.Однако в Safari (для настольных компьютеров и мобильных устройств) форма вообще не отправляется.Сеть «зависает» в состоянии обработки - http://take.ms/IdPyw Это очень похоже на эту проблему , однако это не относится только к вводу файлов.
Мой код ниже:
Форма:
=form_with(model: Request.new, class: 'g-form g-contact__form', id: 'form', remote: true) do |f|
=f.file_field :attachments, class: 'g-input__field-file', multiple: true
=f.submit 'Отправить', class: 'g-btn g-btn_submit', id: 'form_submit', data: { "disable-with": "Отправляем..." }
Мой controllers/requests_controller.rb
:
def create
allow_send = true
@request = Request.new(request_params)
if allow_send
respond_to do |format|
if @request.save
format.js
RequestMailer.notify_admin(@request).deliver_now
else
format.js { render partial: 'fail' }
end
end
else
@request.errors.add(:bot, "К сожалению, у нас подозрение, что вы бот. Попробуйте заполнить форму ещё раз.")
respond_to do |format|
format.js { render partial: 'fail' }
format.html
end
end
end
Мой create.js.rb
:
$('#form-popup').toggle();
$('#success-popup').toggle();
Если я переключусь на более классический подходТо есть, отвечая через HTML и перенаправляя на определенную страницу, форма работает в Safari.Однако мне нужно, чтобы форма работала точно так же, как она работает сейчас в Chrome.
Мой подход к плану Б заключался бы в переписывании всего кода, отвечающего за отправку формы и проверку на наличие ошибок в простом JS (т. Е. * 1023).* и т.д ...), однако я бы очень хотел остаться с инструментами, предоставленными рельсами.
Есть ли обходной путь для Safari?
Обновление: Мне удалось получить сообщение об ошибке.В нем говорится: Failed to load resource: Network connection lost
(скриншот - http://take.ms/yrAMI)