質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

Q&A

0回答

284閲覧

コメント機能の非同期通信でのエラーを解決したい

osuzumaru

総合スコア9

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

0グッド

0クリップ

投稿2020/05/05 13:32

編集2020/05/05 13:36

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> 67 </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}" 1718 = comment.text 19 20 =link_to 'トップページ', root_path

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問