Ruby on rails 如何在rails 3.1的链接中构造删除路由?

Ruby on rails 如何在rails 3.1的链接中构造删除路由?,ruby-on-rails,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3.1,拥有2个型号的客户和通信日志。他们的联系如下: resources :customers do comm_logs end 通信日志控制器中销毁的rspec代码未发生任何错误。lambda块验证了成功删除后通信日志计数减少了1。控制器中的一切似乎都是正确的 rake路由的输出为: new_customer_comm_log GET /customers/:customer_id/comm_logs/new(.:format) {:acti

拥有2个型号的客户和通信日志。他们的联系如下:

resources :customers do
  comm_logs
end
通信日志控制器中销毁的rspec代码未发生任何错误。lambda块验证了成功删除后通信日志计数减少了1。控制器中的一切似乎都是正确的

rake路由的输出为:

       new_customer_comm_log GET    /customers/:customer_id/comm_logs/new(.:format)                 {:action=>"new", :controller=>"comm_logs"}
      edit_customer_comm_log GET    /customers/:customer_id/comm_logs/:id/edit(.:format)            {:action=>"edit", :controller=>"comm_logs"}
           customer_comm_log GET    /customers/:customer_id/comm_logs/:id(.:format)                 {:action=>"show", :controller=>"comm_logs"}
                             PUT    /customers/:customer_id/comm_logs/:id(.:format)                 {:action=>"update", :controller=>"comm_logs"}
                             DELETE /customers/:customer_id/comm_logs/:id(.:format)                 {:action=>"destroy", :controller=>"comm_logs"}
实际上,在单击“删除”按钮后,记录没有被删除,页面也没有像在控制器中一样重定向到上一页(显示页面只是保留,删除后没有重定向到任何位置)。似乎删除操作被路由到了正确的路径。问题最有可能出现在视图中指向以下内容的链接上:

<%= link_to 'delete', customer_comm_log_path(@customer, @comm_log), :method => :delete, :confirm => "are you sure?", :remote => true %>
:delete,:confirm=>“确定吗?”,:remote=>true%>

上面的链接有什么问题吗?谢谢。

你可能会错过一些东西。我假设您正在使用jQuery,因为您没有在问题中指定

a) 确保已安装jQuery

b) 确保您已经手动或使用gem安装了Rails UJS(不引人注目的Javascript)适配器(Rails 3.1的说明也在此链接上):

c) 您的
链接需要告诉Rails UJS适配器它应该捕获链接的点击并通过AJAX提交
删除
请求

<%= link_to 'delete', customer_comm_log_path(@customer, @comm_log), :remote => true, :method => :delete) %>

你可能会错过一些东西。我假设您正在使用jQuery,因为您没有在问题中指定

a) 确保已安装jQuery

b) 确保您已经手动或使用gem安装了Rails UJS(不引人注目的Javascript)适配器(Rails 3.1的说明也在此链接上):

c) 您的
链接需要告诉Rails UJS适配器它应该捕获链接的点击并通过AJAX提交
删除
请求

<%= link_to 'delete', customer_comm_log_path(@customer, @comm_log), :remote => true, :method => :delete) %>

你能发布你的控制器销毁方法吗?你能发布你的控制器销毁方法吗?我正在运行rails 3.1.0,jquery似乎已经安装。gem文件中有gem“jquery rail”。在application.js中,有require jquery和require jquery.ui。刚刚添加了jquery.ujs。在将ajax重定向到application_controller.rb的帖子中添加了def代码。除了to:remote=>true之外,还为链接添加了:confirm=>true。单击“删除”按钮时没有启动确认。也没有重定向。记录仍然存在。服务器日志会说什么(例如,请求是否曾经命中服务器)?另外,检查浏览器控制台中的javascript错误。如果您有一个JS错误,那么它将不会执行
$.ajax
调用。在创建了一个新的.JS.erb文件并在lease\u logs controller中添加了html和JS格式的respond\u to之后,上面发布的ajax destroy开始工作。new.js.erb中有两行:$(“'lease_logs/new.html.erb')%>”).insertAfter('new#log_link')$(“#新建#日志#链接”).hide();还将destroy.js.erb添加到视图中。这是一行文件,它是$(“#”)remove()我正在运行rails 3.1.0,jquery似乎已经安装。gem文件中有gem“jquery rail”。在application.js中,有require jquery和require jquery.ui。刚刚添加了jquery.ujs。在将ajax重定向到application_controller.rb的帖子中添加了def代码。除了to:remote=>true之外,还为链接添加了:confirm=>true。单击“删除”按钮时没有启动确认。也没有重定向。记录仍然存在。服务器日志会说什么(例如,请求是否曾经命中服务器)?另外,检查浏览器控制台中的javascript错误。如果您有一个JS错误,那么它将不会执行
$.ajax
调用。在创建了一个新的.JS.erb文件并在lease\u logs controller中添加了html和JS格式的respond\u to之后,上面发布的ajax destroy开始工作。new.js.erb中有两行:$(“'lease_logs/new.html.erb')%>”).insertAfter('new#log_link')$(“#新建#日志#链接”).hide();还将destroy.js.erb添加到视图中。它是一行文件,为$(“#”)remove()