我的Rails應用程序使用UJS在各處提交表單,但由於某種原因,我無法在此處使用它。Rails「remote:true」適用於link_to,不適用於form_tag
我確信我有UJS正確設置(因爲它在其他地方工作):
#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 %>
點擊link_to
按預期工作(請求格式是JS):
Started POST "/tag_applications/apply" for ::1 at 2017-05-30 11:10:51 -0400
Processing by TagApplicationsController#apply as JS
但是通過點擊HTML的form_tag
的提交:
Started POST "/tag_applications/apply" for ::1 at 2017-05-30 11:11:02 -0400
Processing by TagApplicationsController#apply as HTML
任何人都可以提出什麼可能導致第二個沒有達到預期效果?
您是否嘗試過'的form_tag apply_tag_applications_path,方法:後,數據:{遠程:真正}'? –
使用'data:{remote:true}'而不是普通的'remote:true'仍然沒有解決這個問題,但是我注意到使用你的建議呈現的HTML('data:{remote:true}')導致帶有真實性標記的隱藏字段被添加到表單中。我沒有看到這個隱藏的領域的代碼,根據我上面的排隊。 –
張貼您的路線和控制器代碼,以及顯示相應的js文件的名稱(應該是無論控制器的行動名稱是什麼is.js.erb) – the12