前提・実現したいこと
ある投稿にネストしているコメント機能を非同期通信でコメントできるように
実装したいのですが、現状非同期にもならずハッシュで出されてしまっています。
発生している問題・エラーメッセージ
例:
aaaaというコメントを投稿した結果
{"comment":{"id":81,"text":"aaaa","user_id":1,"preschool_id":5,"created_at":"2020-12-17T15:53:40.398+09:00","updated_at":"2020-12-17T15:53:40.398+09:00"}}
というハッシュのみが画面遷移後表示される
↓comment.js
Javascript
1function comment(){ 2 const submit = document.getElementById("submit"); 3 submit.addEventListener("click",(e)=>{ 4 const formData = new FormData(document.getElementById("comment-form")); 5 const XHR = new XMLHttpRequest(); 6 XHR.open("POST", `/preschools/${preschoolId}/comments`, true); 7 XHR.responseType ="json"; 8 XHR.send(formData); 9 XHR.onload = () => { 10 if (XHR.status != 200) { 11 alert(`Error ${XHR.status}: ${XHR.statusText}`); 12 return null; 13 } 14 const list = document.getElementById("comment-list"); 15 const formText = document.getElementById("comment-content"); 16 const HTML = ` 17 <li class="comments_list"> 18 <%= comment.text%> 19 <%= link_to "#{comment.user.nickname}さん", "/users/#{comment.user_id}",class: :comment_user %> 20 </li>`; 21 list.insertAdjacentHTML("afterend", HTML); 22 formText.value = ""; 23 }; 24 e.preventDefault(); 25 }); 26 27} 28 29window.addEventListener("load", comment);
↓commentコントローラー
class CommentsController < ApplicationController def create @comment = Comment.create(comment_params) render json:{ @comment :post} end
とすると文法のエラーになりました。。
補足情報(FW/ツールのバージョンなど)
rails 6.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。