Rails“remote:true”适用于link_to,不适用于form_tag

时间:2017-05-30 15:18:15

标签: ruby-on-rails ujs

我的rails应用程序使用UJS在整个地方提交表单,但出于某种原因我不能在这里工作。

我很确定我正确设置了UJS(因为它可以在其他地方使用):

new byte[198]

在我看来,我有一个#application.html.erb <%= javascript_include_tag 'application' %> #assets/javascripts/application.js //= require jquery //= require jquery_ujs 和一个form_tag,都设置为link_to

remote: true

单击<%= form_tag apply_tag_applications_path, remote: true, method: :post do %> <%= submit_tag "FORM TAG SUBMIT" %> <% end %> <%= link_to apply_tag_applications_path, remote: true, method: :post do %> <h1>LINK TO SUBMIT</h1> <% end %> 按预期工作(请求格式为JS):

link_to

但点击Started POST "/tag_applications/apply" for ::1 at 2017-05-30 11:10:51 -0400 Processing by TagApplicationsController#apply as JS 通过HTML提交:

form_tag

有人可以建议可能导致第二个不能按预期工作的原因吗?

1 个答案:

答案 0 :(得分:0)

确认您在布局或资产中引用了jquery_ujs文件。

<%= form_for @apply_tag, remote: true, method: :post do |f| %>
  <%= f.submit "FORM TAG SUBMIT" %>
<% end %>

此外,远程选项仅在您将对象而不是路径传递给form_for时才有效。

这将有效

Interface