前提・実現したいこと
railsを使ってのメモ機能実装中です。
現在非同期通信を試みているのですが、
うまくいかず迷っています。
発生している問題・エラーメッセージ
console
1memo.js:9 POST http://localhost:3000/memos 404 (Not Found) 2(anonymous) @ memo.js:9
該当のソースコード
memo.js
1function memo (){ 2 const submit = document.getElementById("memo-btn"); 3 submit.addEventListener('click', (e) => { 4 const formData = new FormData(document.getElementById("memo_area")); 5 const XHR = new XMLHttpRequest(); 6 XHR.open("POST", "/memos", true); 7 XHR.responseType = "json"; 8 XHR.contentType = "application/json" 9 XHR.send(formData); 10 11----------formDataでエラーが出ているためここまでの記入で止まっています。 12 13 e.preventDefault(); 14 }); 15} 16 17window.addEventListener('load', memo);
<div class="memo-form-block"> <%= form_with(model: @memo, url: user_memos_path(current_user.id), local: true, id: "memo_area") do |f| %> <%= f.text_area :title, placeholder:"TITLE", class:"memo-text", id:"memo_title"%> <%= f.text_area :content, placeholder:"MEMO", class:"memo-text", id:"memo_content", rows: 6 %> <%= f.submit "NEW POST", class:"memo-btn", id:"memo-btn" %> <% end %> </div>
resources :users, only: :show do resources :memos, only:[:index, :create] end
試したこと
コントローラーcreateアクションにbinding.pryをかけたが意味がなかった。
formのidを変えてみたが意味がなかった。
channelを使ってみたが、そこでもエラーが出てしまった。
いろいろ調べてみたところ、 XHR.open("POST", "/memos", true);
の部分のパス指定に誤りがありそうです。
:user_idの部分の書き方のヒントお願いします・・・。
ちなみに、memoはuserにネストさせています
補足情報(FW/ツールのバージョンなど)
memosテーブルのカラムはtitleとcontentの二つです。
同期通信では問題なく動作します。