遵循Ruby-on-Rails教程并获取"销毁用户"不起作用

Rei*_*rne 1 ruby ruby-on-rails ruby-on-rails-3.2

我最近安装了Ruby on Rails 3.2并且一直在努力学习它.我一直在关注RoR 3.0教程(http://ruby.railstutorial.org/chapters/updating-showing-and-deleting-users#top),到目前为止一切顺利(是的,我知道有一个3.2)版).

目前我被困在第10.4.2节,该节教导如何添加链接以销毁用户.它说要添加代码

<%= link_to "delete", user, :method => :delete, :confirm => "You sure?",
                            :title => "Delete #{user.name}" %>
Run Code Online (Sandbox Code Playgroud)

以及添加apps/view/layout/application/html/erb

<%= javascript_include_tag :defaults %>
Run Code Online (Sandbox Code Playgroud)

看起来这应该是正确的用户控制器中的destroy方法,正如教程所说,但它不适合我,我无法弄清楚为什么.它创建的链接只是/ user /:id.我查看了3.2教程中的相同部分,它是相同的方向(但没有javascript包含标记代码).我无法按照该教程开始工作.所以我不确定为什么它不工作或如何让它工作.

所以我们很清楚,而不是去这个用户控制器中的destroy方法,它转到/ user /:id这是show方法.

Val*_*yev 5

删除资源(您的案例中的用户)需要将jquery_ujs javascript文件包含在页面中.看到正在调用'show'动作是很常见的,因为没有jquery_ujs没有发送指示HTTP DELETE动词的隐藏数据.

尝试显式插入jquery_ujs,如下所示:

<%= javascript_include_tag 'jquery_ujs' %>
Run Code Online (Sandbox Code Playgroud)

看看会发生什么.

jquery_ujs被设计为'...用于Ruby on Rails框架的不显眼的脚本支持文件,但并不严格依赖于任何特定的后端.' 换句话说,它扫描文档,查看特殊data-*属性并根据这些属性执行各种操作,例如,附加隐藏的html元素,执行ajax请求等.

另请注意,为了使用jquery_ujs,还应引用jquery(之前).

希望这可以帮助.