0

我有控制器销毁方法

def destroy
    @category = Category.find(params[:id])
    @category.destroy
    redirect_to backend_categories_path
end

并查看两个不同的破坏链接

<%= link_to 'Destroy', backend_category_path(category), method: :delete, data: { confirm: 'Are you sure?' } %>
<%= button_to 'Destroy', backend_category_path(category), :confirm => "are you sure?", :method => :delete %>

问题是:

  1. 第一个链接不起作用,它显示记录未删除
  2. 第二个链接确实有效,但不要问我是否真的要删除记录。

jquery gem 安装有什么问题?

轨道版本是 3.2.13

4

2 回答 2

0

实际上,您不应该通过GET请求访问任何破坏性操作。除其他问题外,当您的网站被抓取时,您冒着被删除内容的风险。

也就是说,您的使用在button_to语法上是正确的。确认消息无法正常工作可能是由于 Javascript 错误造成的。您是否确保您的文件中有以下内容<head>

# app/views/home/index.html.erb
<head>
    <%= javascript_include_tag(:defaults) %>
    <%= csrf_meta_tag %>
</head>
于 2013-06-13T22:04:37.447 回答
0

在您的应用程序布局的头部添加了<%= javascript_include_tag "application" %>吗?像这样 :

<!DOCTYPE html>
<html>
<head>
<title>title of page</title>
.....
.....
<%= javascript_include_tag "application" %> 

<%= csrf_meta_tag %>

</head>
....

并确保您的app/assets/application.js文件中有以下几行:

//= require jquery
//= require jquery_ujs 
//= require_tree .

我认为你也可以替换<%= button_to Destroy',backend_category_path(category), ....<%= button_to 'Destroy', category, ....

于 2013-06-14T00:43:01.013 回答