Rails 3 form_for设置为remote:true但请求仍以HTML格式提交

时间:2018-02-05 23:37:27

标签: jquery ruby-on-rails ajax

我有一个form_tag,我将远程设置为true,但表单仍然以HTML格式提交

这是我得到的:



    <%= form_tag('/permissions/update_resource', remote: true, method: :post) do %>
    
    <!-- Form goes here -->
    
<% end %>
&#13;
&#13;
&#13;

这反过来会生成如下所示的HTML:

&#13;
&#13;
<form accept-charset="UTF-8" action="/permissions/update_resource" data-remote="true" method="post">
<!-- form goes here -->
</form>
&#13;
&#13;
&#13;

问题是,在提交表单时,请求以HTML格式发出。知道这里有什么不对吗?我完全不知所措。

我有一个简单的AJAX请求在同一个页面上工作,所以我很确定我的Rail应用程序配置正确...

2 个答案:

答案 0 :(得分:0)

确保安装 jquery-rails - gem 并同时包含 jquery jquery_ujs 在你的js-manifest文件中(在assets/javascripts/application.js中) - 例如像这样:

//= require jquery
//= require jquery_ujs

有关详细信息(包括通过npm的备用安装说明),请查看 jquery-ujs - Ruby on Rails unobtrusive scripting adapter for jQuery

答案 1 :(得分:0)

显然我的问题在于我如何提交表格。我在select_tag中的代码中有这个:

onchange: "this.form.submit();"

不知何故,这使表单提交为html。我将此行更改为:

onchange: "$('#update_resource_#{resource.id}').submit();"

砰! - 表单提交为js 我还是不知道为什么:-( 有人有解释,我真的很感激!