我的应用程序中有一个这样的表格
<%= 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
由于已添加remote: true
,因此它作为HTML处理而不是JSON处理。
关于为什么发生这种情况的任何想法。用完所有选项
答案 0 :(得分:1)
根据帖子中提到的描述,您似乎担心未通过控制器发送预期的请求类型(“ json”)。
因此,要使其如帖子中所述正常工作,请更改代码,如下所示:
<%= form_tag(studios_path, method: :get, id: "studios_filter", remote: true, :html => {:'data-type' => 'json'}) do %>
这将以json类型处理请求。
答案 1 :(得分:0)
由于您在表单中使用method: :get
,因此所有表单值都会附加到studios_path中,因此您必须将此方法用作post
,并在发布路线中更改该方法。之后,您将开始获取控制器中所有表单字段的哈希值
答案 2 :(得分:0)
我遇到了同样的问题:无论我做什么,Rails 5都以remote: true
的身份处理HTML
表单提交。对我来说,解决方案是添加
//= require jquery_ujs
到application.js
。 OP在上面的文件中已经具有此功能,这就是让我尝试一下的原因。不知道为什么OP仍然有问题,但是这为我解决了...所以也许这会为其他人解决!