##困ったこと・前提
画像のようにコメント送信ボタンを押すとTemplate is missingになってしまいます。
エラー内容のとおりcommentsフォルダにindex.html.erbを作成しましたが、
真っ白なページに遷移され非同期通信になりません。
##comments_controller.rb
class CommentsController < ApplicationController def create @post = Post.find(params[:post_id]) @comment = @post.comments.build(comment_params) @comment.user_id = current_user.id if @comment.save! render :index end end def destroy @comment = Comment.find(params[:id]) if @comment.destroy render :index end end private def comment_params params.require(:comment).permit(:comment_content, :post_id, :user_id ) end end
##comments/_form.html.erb
<%= form_with(model: [post, comment] ) do |form| %> <div> <%= form.text_area :comment_content %> </div> <div class="actions"> <%= form.submit "コメントをする" %> </div> <% end %>
##comments/_index.html.erb
<% comments.each do |comment| %> <% unless comment.id.nil? %> <p><%= link_to "#{comment.user.name}さん" %></p> <p>コメント:<%= comment.comment_content %></p> <% if comment.user == current_user %> <p><%= link_to 'コメントを削除する', post_comment_path(comment.post_id, comment.id), method: :delete, remote: true %></p> <% end %> <% end %> <% end %>
##comments/index.js.erb
$("#comments_area").html("<%= j(render 'index', { comments: @comment.post.comments }) %>") $("textarea").val('')
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。