我正在为我的网站创建一个博客,用户可以在其中向帖子添加评论。我希望新评论的表单通过 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
知道我哪里出错了,我的控制器中缺少什么吗?
谢谢