https://gyazo.com/4c6ba0c764d70603c30ba968abbbece1
https://gyazo.com/26a035f24ae09ec5a2b6018bd30ae4cf
コメント機能の非同期化をやってるんですがどうしてもエラーが解決せずに困っています
エラーメッセージは500が出ているのでサーバー側だとは思うのですがどこが違うのかがわかりません。
詳しい方おりましたらご教授お願いします。
rails
1class CommentsController < ApplicationController 2 def create 3 @comment = Comment.create(comment_params) 4 respond_to do |format| 5 format.html { redirect_to posts_path(params[:post_id]) } 6 format.json 7 end 8 9 end 10 11 private 12 def comment_params 13 params.require(:comment).permit(:text).merge(user_id: current_user.id, post_id: params[:post_id]) 14 end 15end
rails
1$(function(){ 2 function buildHTML(comment){ 3 var html = `<p> 4 <strong> 5 <a href=/users/${comment.user.id}>${comment.user.name}</a> 6 : 7 </strong> 8 ${comment.text} 9 </p>` 10 return html; 11 } 12 $('#new_comment').on('submit', function(e){ 13 e.preventDefault(); 14 var formData = new FormData(this); 15 var url = $(this).attr('action') 16 $.ajax({ 17 url: url, 18 type: "POST", 19 data: formData, 20 dataType: 'json', 21 processData: false, 22 contentType: false 23 }) 24 .done(function(data){ 25 console.log(data) 26 var html = buildHTML(data); 27 $('.comments').append(html); 28 $('.text_box').val(''); 29 $('.form_submit').prop('disabled', false); 30 }) 31 .fail(function(){ 32 alert('error'); 33 }) 34 }) 35})
rails
1json.text @comment.text 2json.user.id @comment.user.id 3json.user.name @comment.user.nickname
rails
1 .container 2 - if current_user 3 = form_with model: [@post, @comment], local: true, id: "new_comment" do |form| 4 = form.text_area :text, placeholder: "コメントする", rows: "2", class: "text_box" 5 = form.submit "SEND", class: "form_submit" 6 - else 7 %strong 8 %p ※※※ コメントの投稿には新規登録/ログインが必要です ※※※ 9 10 .comments 11 %h4 <コメント一覧> 12 - if @comments 13 - @comments.each do |comment| 14 %p 15 %strong 16 = link_to comment.user.nickname, "/users/#{comment.user_id}" 17 : 18 = comment.text 19 20 =link_to 'トップページ', root_path
あなたの回答
tips
プレビュー