我被困在删除/销毁。任何帮助,将不胜感激!
我在 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 中是相同的。
这就是我所拥有的:
宝石“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 (来自应用程序/控制器)我有:
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)