0

我的申请中有这样的表格

<%= form_tag(studios_path, method: :get, id: "studios_filter", remote: true) do %>

<% end %>

在我的 application.js 中,我有这个

//= require jquery
//= require jquery_ujs
//= require rails-ujs
//= require jquery3
//= require turbolinks
//= require cocoon
//= require bootstrap
//= require_tree .

无论何时提交此表格,我都会以某种方式得到它

Started GET "/studios?utf8=%E2%9C%93&workout_category_id_list=&neighbourhood_list=Kuala+Lumpur&studio_id_list=" for 127.0.0.1 at 2018-12-28 12:42:12 +0800
Processing by StudiosController#index as HTML

它作为 HTML 处理,而不是作为 JSON 处理,因为remote: true已经添加。

关于为什么会发生这种情况的任何想法。用尽选项

4

3 回答 3

1

根据帖子中提到的描述,您似乎担心未通过控制器发送的预期请求类型(“json”)。

所以,为了它像帖子中提到的那样工作,更改代码如下:

<%= form_tag(studios_path, method: :get, id: "studios_filter", remote: true, :html => {:'data-type' => 'json'}) do %>

这会将请求处理为 json 类型。

于 2018-12-28T06:02:31.507 回答
0

我在同样的问题上苦苦挣扎:Rails 5 正在处理我的remote: true表单提交,HTML无论我做什么。我的解决方案是添加

//= require jquery_ujs

application.js. OP 在他们上面的文件中已经有了这个,这就是让我试一试的原因。不知道为什么 OP 仍然有问题,但这为我解决了它......所以也许这会为其他人解决它!

于 2019-05-26T23:31:17.563 回答
0

由于您method: :get在表单中使用,所有表单值都会附加到 studios_path,您必须使用此方法post并更改路由中的方法以发布。之后,您将开始获取控制器中的所有表单字段作为哈希

于 2018-12-28T04:50:58.373 回答