So I'm trying to update my comments section with AJAX without the full page refresh for a college project. However I can't seem to get this working. In the console it gives me s
Failed to load resource: the server responded with a status of 500 (Internal Server Error)
My show.html.erb file:
<h1>Title: <%= @post.title %></h1> <h2>Body: <%= @post.body %></h2> <hr /> <h1>Your comments</h1> <%= link_to "View comments", "#", id: "comments-link" %> <ol id="comments"> <%= render 'comments' %> <hr /> <h1>Create comment</h1> <%= form_for(@comment, :html => {class: "form", role: "forms"}, :url => post_comments_path(@post), remote: true) do |comm| %> <div class="container"> <div class="input-group input-group-md"> <%= comm.label :body %> <%= comm.text_area :body, class: "form-control", placeholder: "Enter a comment" %> </div> <%= comm.submit "custom", id: "button" %> </div> <% end %> </ol> My comments.coffee:
$(document).on "page:change", -> $('#comments-link').click -> $('#comments').fadeToggle() $('#comments_body').focus() My create.js.erb:
$('#comments').append("<%= j render @comment %>"); and my Comments controller:
class CommentsController < ApplicationController def index end def new end def new @comment = Comment.new end def create @comment = Comment.new(comment_params) @comment.post_id = params[:post_id] if @comment.save flash[:success] = "Successfully created comment" respond_to do |format| format.html { redirect_to post_path(@comment.post_id) } format.js end else flash[:danger] = "Failed to create comment" redirect_to root_path end end private def comment_params params.require(:comment).permit(:body) end end I may have missed some files so just let me know, it is basic as it's just a post and comment system - no styling needed for the project, so yeah. I have been trying this for the last 4 hours and other places just don't work. I've looked on here, Youtube - everywhere however no one else's code works for me so I have come here! Thank's for you're help.
EDIT:
I noticed it said to create a view in the error response, however I made that view and rendered the comment's body onto the create.html.erb however I just need to display the form now.
create.js.erbinsteadcreate.html.erb