Отправить форму Rails через запрос AJAX без JQuery и удаленного: true - PullRequest
0 голосов
/ 30 октября 2018

Я создаю блог на своем сайте, где пользователи могут добавлять комментарии к посту. Я хочу, чтобы форма для нового комментария отправляла запрос "POST" через AJAX и использовала javascript для загрузки нового комментария вместо обновления старой грязной страницы.

Я новичок в AJAX, так что это немного сбивает с толку. В основном это просто CRUD-материал, похожий на строительные леса. Вот мой код:

Форма в виде:

    <%= form_for ([@post, @post.comments.build]) do |f| %>
  <div class="form-group">
    <%= f.label :name, class: 'form-line' %>
    <%= f.text_field :commenter, class: 'form-line' %>
  </div>
  <div class="form-group">
    <%= f.label :comment, class: 'form-line' %>
    <%= f.text_area :body, class: 'form-line' %>
  </div>
  <div class="form-group">
    <%= f.submit 'Comment', id: 'comment-btn' %>
  </div>
<% end %>

Мои комментарии принадлежат посту, который имеет много комментариев. Вот мой коммент контроллер

class CommentsController < ApplicationController

  def create
    @post = Post.find(params[:post_id])
    @comment = @post.comments.create(comment_params)
    @comment.save!
      respond_to do |format|
        format.html
        format.json
      end
    end
  end

  def destroy
    @post = Post.find(params[:post_id])
    @comment = @post.comments.find(params[:id])
    @comment.destroy
  end

  private

  def comment_params
    params.require(:comment).permit(:commenter, :body, :post)
  end

end

Я получаю код ошибки HTTP 500 в разделе сети Chrome Dev Tools. На общей вкладке написано:

Request URL: http://localhost:3000/en/posts/1/comments
Request Method: POST
Status Code: 500 Internal Server Error
Remote Address: 127.0.0.1:3000
Referrer Policy: strict-origin-when-cross-origin

Есть идеи, где я иду не так и чего мне не хватает в моем контроллере?

Спасибо

...