javascript - 为什么我会因 Jquery 而收到 500 错误?

标签 javascript jquery ruby-on-rails ajax

当我尝试删除代码中的应用程序列表时,出现此错误。

    DELETE http://localhost:3000/apps/9 500 (Internal Server Error)
jQuery.ajaxTransport.send @ jquery.self-d03a5518f45df77341bdbe6201ba3bfa547ebba8ed64f0ea56bfa5f96ea7c074.js?body=1:9660
jQuery.extend.ajax @ jquery.self-d03a5518f45df77341bdbe6201ba3bfa547ebba8ed64f0ea56bfa5f96ea7c074.js?body=1:9211
$.rails.rails.ajax @ jquery_ujs.self-ca5248a2fad13d6bd58ea121318d642f195f0b2dd818b30615f785ff365e8d1f.js?body=1:84
$.rails.rails.handleRemote @ jquery_ujs.self-ca5248a2fad13d6bd58ea121318d642f195f0b2dd818b30615f785ff365e8d1f.js?body=1:162
(anonymous function) @ jquery_ujs.self-ca5248a2fad13d6bd58ea121318d642f195f0b2dd818b30615f785ff365e8d1f.js?body=1:384
jQuery.event.dispatch @ jquery.self-d03a5518f45df77341bdbe6201ba3bfa547ebba8ed64f0ea56bfa5f96ea7c074.js?body=1:4666
jQuery.event.add.elemData.handle @ jquery.self-d03a5518f45df77341bdbe6201ba3bfa547ebba8ed64f0ea5

我正在尝试实现一个 UJS 删除按钮。虽然列表删除了,但它没有应用 destroy.js.erb 文件中的 .hide('slow') 方法:

<% if @app.destroyed? %>
   $('#app-' +<%= @app.id %>).hide('slow');
 <% else %>
   $('#app-' +<%= @app.id %>).prepend("<div class='alert alert-danger'><%= flash[:error] %></div>");
 <% end %>

销毁Apps_controller中的资源:

def destroy
    @app = App.find(params[:id])

    if @app.destroy
      flash[:notice] = "App was removed."
      redirect_to @app
    else
      flash[:error] = "App couldn't be deleted. Try again."
      redirect_to @app
    end

     respond_to do |format|
       format.html
       format.js
     end
  end

应用索引

<h1>All Apps</h1>
 <% @apps.each do |app| %>
   <div class="media">
     <div class="media-body">
       <h5 id="app-<%=app.id%>" class="media-heading">
         <%= link_to app.title, app %>
         <%= link_to "Delete", app , method: :delete, remote: true %>
       </h5>
     </div>
   </div>
 <% end %>

最佳答案

您可以通过修改 Controller 中的销毁操作来检查吗? 例如。

def destroy
   @app = App.find(params[:id])
   if @app.destroy
     flash[:notice] = "App was removed."
   else
     flash[:error] = "App couldn't be deleted. Try again."      
   end
   respond_to do |format|       
      format.js { }
   end
end

关于javascript - 为什么我会因 Jquery 而收到 500 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31330710/

相关文章:

javascript - 单击按钮 JavaScript 为文本添加下划线

javascript - 灯箱中的工具提示无法正常工作

javascript - 使用 while 循环创建多个按钮,但使用 .onclick 函数时只有第一个按钮响应

javascript - Angularjs - 使用 php 上传文件

css - 为使用 ajax 加载的部分 View 加载 css 的最佳方式

ruby-on-rails - 如果 referrer domain = x,重定向到 Rails 中的页面

Javascript:函数作为参数,可能性

ruby-on-rails - 是否有一个 gem 可以让 Git 和 Rails 协同工作以实现更强大的迁移?

ruby-on-rails - 如何使用单例重构包装器来设置 session ?

jquery - 三列布局图像应以两种分辨率居中(1024 x 768 和 1366 x 768)