ActiveAdmin - 如何通过AJAX将http请求发送到表单提交按钮

时间:2018-05-06 18:25:28

标签: ruby-on-rails ruby ajax forms activeadmin

我正在构建一个ActiveAdmin表单,作为一个简单的html + jquery表单开始的项目的一部分。作为一个非ru​​byist,我正在努力理解这个框架以及如何创建一个将数据发送到外部服务器的表单。到目前为止,我有这个:

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

但是,虽然这确实发送了post请求,但它也会导航到此端点。我正在寻找一个只在提交表单时发送数据的表单。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

您需要将set 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的documentation

答案 1 :(得分:0)

您的控制器/路线如何响应此操作?也许处理程序正在进行重定向。尝试用简单的警报回复,看看会发生什么。

使用它,同时监视网络请求和响应,以查看正在返回的状态代码。

欢呼声