通过AJAX请求提交Rails表单,而无需jQuery和remote:true

时间:2018-10-30 02:20:13

标签: javascript ruby-on-rails ajax forms rails-ujs

我正在为我的网站创建一个博客,用户可以在其中向帖子添加评论。我希望新评论的表单通过AJAX提交“ POST”请求,并使用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

我在chrome开发工具网络部分中收到HTTP 500错误代码。在常规标签中,其显示为:

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

有什么主意我要去哪里以及我的控制器中缺少什么吗?

谢谢

0 个答案:

没有答案