【发布时间】:2013-08-02 13:22:46
【问题描述】:
我被困在删除/销毁。任何帮助将不胜感激!
我在 Mac 10.8.3 和 Postgres 上使用 Ruby 2.0.0 和 Rails 3.2.6。
这是应该可以工作的删除链接:
<%= link_to 'Destroy', @product, method: :delete, data: { confirm: 'Are you sure?' } %>
但是当我点击 Destroy 链接时,它会将我定向到用户的个人资料。我没有收到任何确认窗口,也没有执行任何操作(删除)。似乎它只是停留在同一页面上。我使用的是 Firefox,但在 IE 和 Chrome 中是一样的。
这就是我所拥有的:
gem“jquery-rails”已安装
-
applications.js(来自 app/assets/javascripts)有以下几行:
//= require jquery //= require jquery_ujs //= require_tree . -
application.html.erb(来自 app/views/layouts)有以下几行:
<%= javascript_include_tag "application" %> <%= csrf_meta_tags %>在查看源代码中我看到:
<script src="/assets/application.js?body=1" type="text/javascript"></script> <meta content="authenticity_token" name="csrf-param" /> <meta content="MVlJi+WJE1cwWoHnBrpRWIa13gqio0iPT3IL6kpQYdE=" name="csrf-token" /> -
在 products_controllers.rb(来自 app/controllers)我有:
def destroy @product = Product.where(:id => params[:id]).first @product.destroy respond_to do |format| format.html { redirect_to products_url } format.json { head :no_content} end end -
在 routes.rb 中(来自配置)我有:
resources :products
那个 Destroy 链接有什么问题?
在同一个 RoR 项目上,编辑链接可以正常工作。
那么,为什么链接不起作用?是 Javascript 问题还是我没有看到的其他问题?
这是服务器的日志:(似乎没有执行“删除”操作)
Started GET "/products/9" for 127.0.0.1 at 2013-08-01 20:01:08 -0500
Processing by ProductsController#show as HTML
Parameters: {"id"=>"9"}
Product Load (0.1ms) SELECT "products".* FROM "products" WHERE "products"."id" = 9 LIMIT 1
Rendered products/show.html.erb within layouts/application (0.5ms)
Completed 200 OK in 27ms (Views: 25.8ms | ActiveRecord: 0.1ms)
【问题讨论】:
-
在浏览器控制台中搜索
JavaScript错误。 -
试试
link_to 'Destroy', product_path(@product.id), method: :delete,也看看这个:stackoverflow.com/questions/4423314/… -
查看服务器日志。
-
请提供有关服务器日志中错误的一些信息。
-
@MrYoshiji,嘿,我试过这个,但它对我不起作用......:(
标签: ruby-on-rails destroy