コメントを非同期にて表示できるようになりました。
そこで、コメント削除も非同期にて対応しようと思い。
クロームの検証画面でエレメントコピーして修正して下記コードを追加しました。
<a class="comment-delete" rel="nofollow" data-method="delete" href="/tweets/${comment.tweet_id}">削除</a>
${comment.tweet_id}の部分の表記がおそらく違うのだと思います。
コメントして即削除でActiveRecord::RecordNotFound in TweetsController#destroyが出ます。
一度リロードをすれば問題なく削除できているので
非同期部分で引っかかっているのは確認済みです。
どうすればいいのでしょうか?
コメント投稿と削除で別々の
記載をするべきでしょうか?
ファイル名: javascripts/comment.js $(function(){ function buildHTML(comment){ var html = `<p> <strong> <a href=/users/${comment.user_id}>${comment.user_name}</a> : </strong> ${comment.text} <a class="comment-delete" rel="nofollow" data-method="delete" href="/tweets/${comment.tweet_id}">削除</a> </p>` return html; } $('#new_comment').on('submit',function(e){ e.preventDefault(); console.log(this) var formData = new FormData(this); var url = $(this).attr('action') $.ajax({ url: url, type: "POST", data: formData, dataType: "json", processData: false, contentType: false }) .done(function(data){ var html = buildHTML(data); $('.comments').append(html); $('.form_message').val(''); $('.form__submit').prop('disabled', false); }) .fail(function(){ alert('error'); }) }) })
あなたの回答
tips
プレビュー