私のレールアプリは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、方法を試してみましたが、動作しますか? –
'remote:true'の代わりに' data:{remote:true} 'を使用しても問題は解決しませんでしたが、私はあなたの提案(' data:{remote:true} ')を使ってレンダリングされたHTMLに気づきましたフォームに追加される真正性トークンを持つ隠しフィールドが発生しました。私は上記の私の質問によると、この隠されたフィールドがコードで表示されません。 –
あなたのルートとコントローラコードを掲示し、対応するjsファイルの名前を表示してください(コントローラーのアクション名が.js.erbのものでなければなりません) – the12