【发布时间】:2019-01-30 06:27:26
【问题描述】:
我正在开发一个 Rails 5.0 应用程序。这是一个遗留应用程序,多年来维护不善,天知道它没有正确更新什么(例如,它仍然使用public/ 结构来包含其所有样式表和 javascript 文件)。
我无法获取要执行的默认 rails delete 路由。
考虑以下控制器操作:
class Admin::PackagesController < ApplicationController
def destroy
@package = Package.find(params[:id])
@package.destroy
respond_to do |format|
format.html { redirect_to root_url}
format.xml { head :ok }
end
end
但是当我调用以下链接时:
<%= link_to 'Destroy', ['admin', package], :confirm => 'Are you sure?', :method => :delete %>
它不调用销毁动作:它转到单个包的显示动作。
【问题讨论】:
-
点击删除按钮时是否看到任何 JS 错误?大多数情况下,如果没有配置rails-ujs/jquery-ujs,请检查是否存在JS错误。
-
您需要 UJS 才能使 :method => :delete 参数起作用。
-
@zasman 你能展示你的耙子吗
routes | grep packages?
标签: javascript ruby-on-rails ruby controller destroy