提问者:小点点

加载资源失败:服务器响应状态为500(内部服务器错误)Ajax Rails错误


我目前正在尝试向rails应用程序添加一些ajax。当我尝试创建一个新帖子时,我遇到了这个错误。我知道帖子是被创建的,因为当我刷新页面时,帖子会出现在帖子列表中。

  def create
    @post = Post.new(post_params)
    respond_to do |format|
      if @post.save
        format.html { redirect_to @post, notice: 'Post was successfully created.' }
        format.json { render :show, status: :created, location: @post }
        format.js
      else
        format.html { render :new }
        format.json { render json: @post.errors, status: :unprocessable_entity }
        format.js
      end
    end
  end
<%= form_for(@post, remote: true) do |f| %>
      <div class="modal fade" id="mynewpost" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
        <div class="modal-dialog">
          <div class="modal-content">
            <div class="modal-header">
              <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
              <h4 class="modal-title" id="myModalLabel">Suggested Invite</h4>
            </div>
            <div class="modal-body">
            </div>
            <div class="modal-footer">
              <button type="button" class="btn btn-default" data-dismiss="modal" id="mynewpost">Close</button>
              <%= submit_tag "Create", class: "btn btn-primary" %>
            </div>
          </div>
alert("Post Created!!");
resources :posts

现在我希望在点击提交后,我会看到poste被创建!但我没有。我只是得到一个内部服务器错误。从这里我不知道该怎么办。请让我知道,如果有任何额外的信息,我可以提供。


共1个答案

匿名用户

看起来可能是语法错误

{ render :show, status: :created, location: @post }

从post中呈现json并用javascript控制逻辑会更简单。

render json: @post

然后在javascript中让听众了解表单的成功

    $("form").on("ajax:complete", (xhr, status) ->
           alert("Post was created!");
    )
    $("form").("ajax:error", (xhr, data, status) ->
      "Handle errors here";
    )