ActiveAdmin - Как отправить запрос http на кнопку отправки формы через AJAX - PullRequest
0 голосов
/ 06 мая 2018

Я создаю форму ActiveAdmin как часть проекта, который начинался как простая форма html + jquery. Как не rubyist я изо всех сил пытаюсь понять эту структуру и как я бы создал форму, которая отправляет данные на внешний сервер. Пока у меня есть это:

form action: "http://localhost:3000/test", method :post do |f|
   f.input :my_field, type: text, name: 'test_field'
   f.input :submit, type: :submit
end

Однако, хотя это и отправляет запрос на публикацию, он также перемещается к этой конечной точке. Я ищу форму, которая просто отправляет данные при ее отправке.

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Как ваш контроллер / маршрут реагирует на действие? Может быть, обработчик делает перенаправление. Попробуйте ответить простым предупреждением и посмотрите, что произойдет.

При этом проследите и за сетевым запросом и ответом, чтобы узнать, какой код состояния возвращается.

ура

0 голосов
/ 06 мая 2018

Вам нужно установить remote: true для вашего построителя форм для ajax:

form action: "http://localhost:3000/test", method :post, remote: true do |f|
   f.input :my_field, type: text, name: 'test_field'
   f.input :submit, type: :submit
end

В вашем контроллере вам нужен блок respond_to, который в обычных случаях рельсов будет обрабатывать некоторые данные, ивозвращать что-то для браузера в виде данных json, обычно это модель, но, поскольку в вашем примере нет модели, просто какой-то текст, с которым мы не знаем, что вы хотите сделать, вы можете просто ответить либо json, либо javascript.

def test 
  respond_to do |format|
    format.js
    format.json { render json: {text: params[:text]}, status: :success
  end
end

Возможно, вам следует прочитать документацию , в которой показано, как выполнить AJAX на рельсах

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...